2009-01-01から1年間の記事一覧

問題 1.18

無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけリニア。 問題 1.18 問題 1.16, 問題 1.17 の結果を使い、加算、二倍、二分による、対数的ステップ数の、二つの整数の乗算の反復的プロセスを生成する手…

問題 1.17

無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけリニア。 問題 1.17 本節のべき乗アルゴリズムは、乗算の繰返しによるべき乗の実行に基づいていた。同様に整数の乗算を加算の繰り返しで実行出来る。次の…

続・問題 1.16

無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけリニア。 昨日 id:mohayonao:20090316:1237205020 のつづき 偶数でも奇数でも常に2で割る方法にしてみた。 (define (expt base n) (define (expt-iter a…

問題 1.16

無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけリニア。 問題 1.16 fast-exp のように、逐次平方を使い、対数的ステップ数の反復的べき乗プロセスを生成する手続きを設計せよ。(ヒント: (bn/2)2 = (b…

問題 1.11

無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけシーケンシャル。 問題 1.11 n に対して f(n) = n, n ≧ 3 に対して f(n) = f(n-1) + 2f(n-2) + 3f(n-3) なる規則で定義する関数 f がある。再帰的プロセ…

マルコフ連鎖

何かをしようとして作ったらしき、マルコフ連鎖のプログラムが見つかった。JavaScript で書いてある。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Malkov</title> </meta></head></html>

再帰的プロセスと反復的プロセス

無職の間にSICPも読んでみる。目標は焦らずしっかりと最後まで読む。 Scheme と C で再帰的プロセスと反復的プロセスの手続きをそれぞれ書く。 フィボナッチ数 : 再帰的プロセス (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib…

Mighty Mouse の調子が悪いので Greasemonkey

MacBook で使っている Mighty Mouse のスクロールボールの調子が悪い。 掃除(http://support.apple.com/kb/HT1537?viewlocale=ja_JP&locale=ja_JP) をしてみてもよくならない。このままではWEBサイトを見ているときに手軽にスクロールできなくて困るので、Gr…

SH-3 のメモリ

職業訓練で SH-3 のキャッシュについてやった。その中で2ヶ月ほど前にやったメモリ構成が全然わかっていなかったことが分かったので、忘れないうちにまとめておく。 メモリの構成 ルネサステクノロジ SH-3 は 32ビットの論理アドレス空間(4GB)をもっており…

問題 1.3

無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけシーケンシャル。 問題 1.3 三つの数を引数としてとり、大きい二つの数の二乗の和を返す手続きを定義せよ。 Exercuse 1.3 Define a procedure that takes…

春になってきたのか、最近ずっと眠たい。 無職の嗜みとして人一倍勉強しなければいけないというのに、なんかシャキっとする良い方法はないものか?

演習 4-1

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 4-1 s における t の最も右側の出現位置を返す関数 strrindex(s, t) を書け。 Exercise 4-1 Write the function strrindex(s, t), which returns the position of the rightmost occurr…

空耳

WBC、日本 - 韓国戦。 今日は日本の調子が良すぎた。特にイチローと村田が素晴らしかった。 途中CMで流れていたエアーサロンパスDXのCMの曲が、どうしても加トちゃんの「ちょっとだけよ」に聞こえる。かなり濃密な「ちょっとだけよ」

退化しすぎ

「VBAって何?」と聞かれたので、エクセルで簡単なプログラム例を見せようとしたら、変数宣言の書き方を忘れていた。 var i ×: var は JavaScript では? i As Integer ×: Dim が抜けている その後、ちょっと思い出して ADO でデータベースへの接続までし…

配列の値のとり方

C

例えば以下のようなデータがあるとき、 char *month[] = {"January", "February", "March" , "April" , "May" , "June" , "July" , "August" , "September", "October", "November", "December" ,}; "March"の1文字目 M を取るとき、以下のようには書けない…

演習 4-14

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 4-14 型 t の二つの引数を交換するマクロ swap(t, x, y) を定義せよ。(ブロック構造を使うとよい。) Exercise 4-14 Define a macro swap(t, x, y) that interchanges two arguments o…

ピアノソナタ悲愴 第2楽章

昔、弾けたベートーヴェンのピアノソナタ第8番の第2楽章が弾けなくなっているので、復活させるべく猛練習(といっても2時間くらい)する。とりあえず、36小節目までは戻ってきた。 その後の37小節目以降の、右手でメロディーと3連符のコードを弾きながら…

演習 3-6

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 3-6 二つでなく三つの引数を受け付ける形の itoa プログラムを書け。第3番目の引数は最小のフィールド幅を指定するものである。幅を確保するために必要なら変換された数には左にブラン…

演習 3-5

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 3-5 符号なし整数 n を b進文字表現に変換し、s に格納する(itoa と同様な)関数 itob(n, s, b) を書け。とくに itob(n, s, 16) は n を s 中の16進文字に変換する。 Excersize 3-5 Wr…

演習 2-10

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 2-10 if-else の代わりに条件式を使って、大文字を小文字に変換する関数 lower を書き直せ。 Exercise 2-10 Rewrite the function lower, which converts upper case letters to lower …

split関数: 文字列を分割して配列に格納する

C

英文の単語切り出しをしようと他言語でよくある split 関数を作ってみた。 切り出す単語数が可変バージョンと、最大個数が決まっているバージョンの2パターンを作り、それぞれの長所と短所は以下の通り。 可変バージョン 長所:配列数は動的に決まるため、…

演習 3-4

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 3-4 2の補数表現においては、われわれの itoa プログラムでは、最大の負の数、すなわち -(2wordsize-1) に等しい n の値が処理できない。なぜダメか説明せよ。また、計算機のいかんに…

できなくなったこと

久しぶりにやってみたらできなくなっていることが多い。 ピアノ 2年ほど前にあんなに練習したベートーベンのピアノソナタ悲愴の第二楽章が始めの部分しかできない。しかもその初めの部分ってのは、さらに昔、学生のころに練習して弾けるようになった箇所、…

浮動小数点のビット表現

C

共用体とビットフィールドを覚えたので、その応用。 IEEE754浮動小数点規格の単精度浮動小数点のビット表現を可視化してみる。 浮動小数点型のデータはビット演算できないので、float型とint型の共用体を使った。 実行結果はこんな感じ。 ? -5.6875 +-+-----…

演習 3-3

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 3-3 文字列 s1 中の a-z のような省略記号を、それと等価な完全リスト abc......xyz にして s2 中に展開する関数 expand(s1, s2) を書け。大文字、小文字、数字を許し、a-b-c や a-z0-9…

演習 3-2

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 3-2 改行文字やタブのような文字を目で見えるエスケープ文字 \n や \t に変換しながら、s を t にコピーするような関数 escape(s, t) を書け。switch を使うこと。逆に、エスケープ系列…

演習 2-5

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 2-5 文字列 s2 の任意の文字と等しい文字列 s1 の最初の文字位置を返す関数 any(s1, s2) を書け。ただし、一致する文字がなければ -1 を返す。(標準ライブラリ関数 strpbrk は同じ働き…

演習 2-4

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 2-4 文字列 s2 中の任意の文字に等しい文字を s1 から除去するような形の squeeze(s1, s2) を書け。 Exercise 2-4 Write an alternste version of squeeze(s1, s2) that deletes each c…

演習 2-3

C K&R

無職の間にK&Rを再読。演習問題の解答をさらす。解く順番は適当。 演習 2-3 16進数の文字列( 0x あるいは 0X が付いているものも含めて)をそれと同値な整数値へ変換する関数 htoi(s) を書け。許される文字は 0 から 9 と a から f および A から F である。 …

アセンブラでクイックソート

職業訓練の中でアセンブラのプログラミングをやった。課題で作ったプログラムをさらす。 プログラムの内容はアルゴリズムの定番、ソートのプログラム。 バブルソートと選択ソート、クイックソートの3パターンを作成し、今回のはクイックソート。 プロセッサ…