ざっと見た限りFXマイコンの4ビットマイコンと同等のものが付録になるみたい。
7 months agoTS's memorandom
IBMはブラフだったか……本業的にはいろいろ影響がありそう。
7 months ago4/1の雑感
すでに日付が変わって4/2になっているが。2009年の1/4が過ぎた。3/20には結婚1周年(紙婚式)を迎えた。妻にはずいぶん助けられていると思う。
年初に考えていたことの1つに「人に会う機会を増やす」ことがある。ここまでを振り返ると心もとない限り。明日(厳密には今日か)は久しぶりにJUSの勉強会に参加する。少しでも何かを得て形にできれば幸い。
8 months ago答えは287桁目になるはずで、その値は0726024914。テキストの円周率表とrubyで簡単なスクリプトを作って力技で解いてみました (^^ゞ 以下はコード
def is_date(str)
days = [31,29,31,30,31,30,31,31,30,31,30,31]
return false if (str.length != 10)
month = str[0,2].to_i
day = str[2,2].to_i
hour = str[4,2].to_i
minute = str[6,2].to_i
second = str[8,2].to_i
return false if (month < 1 || month > 12)
return false if (day < 1 || day > days[month-1])
return false if (hour < 0 || hour > 23)
return false if (minute < 0 || minute > 59)
return false if (second < 0 || second > 59)
true
end
begin
if ARGV.length != 0
max = ARGV[0].to_i
end
rescue
max = 1000
end
fp = open("pi104.txt", "r")
pi=''
n=0
fp.each_byte { |c|
break if n > max
next if (c.chr < '0' || c.chr > '9')
pi += c.chr if n > 0
n += 1
}
pos = 0
while (current = (/[01]/ =~ pi)) do
pos += current+1
str = pi[current,10]
pi = pi[current+1 .. -1]
puts "match:#pos #{current} #{str}"
break if (is_date(str))
end
if (current)
puts "#{pos} #{str}"
else
puts "no date value"
end
8 months ago
クイックソートループ版
2/14の続き。ループ版のクイックソートも考えてみたのでメモ。
def qsort_loop(array)
result = array.dup
start = 0
last = array.size - 1
rest = []
while (start < array.size - 1)
while (start < last)
pivot = start
current = start + 1
pivot_val = result[pivot]
while (current <= last)
current_val = result[current]
if current_val < pivot_val
if (current - pivot > 1)
result[current] = result[pivot + 1]
end
result[pivot] = current_val
pivot=pivot + 1
end
current = current + 1
end
result[pivot] = pivot_val
rest.push [pivot+1, last]
last = pivot - 1
end
start, last = rest.pop
end
result
end
data = (1..100).to_a.map { 1 + (rand 200) }
p data
p qsort_loop(data)
1回分の処理の基本形は比較的簡単に作れる。あとはその処理を繰り返しで適用するための形を考えるのにちょっとてまどった。
9 months agoクイックソートのアルゴリズムをスクラッチで書いてみた
西尾さんの日記(クイックソート)を見てちょっとrubyで書いてみた。あまりrubyらしくないコードなのはご愛嬌。Arrayの場合分けはfind_allを使った方がすっきりするとは思う。
(2/16追記:データ生成の部分をちょっと書き直した。qsortはそのまま。)
(2/18追記:qsortの中にもちょっと手を加えた。アルゴリズムは変えてない。)
def qsort(array)
return array if array.size < 2
left = []
right = []
pivot = array[0]
array[1,array.size].each { |i|
((i < pivot)?left:right).push i
}
qsort(left) + [pivot] + qsort(right)
end
data = (1..100).to_a.map { 1 + (rand 200) }
p data
p qsort(data)
ループ版はまた改めて。
9 months agoGoogle ChromeでUser Scriptを有効にする
- (2.0.156.1の場合)実行したいスクリプトを
c:\scripts\に置く
(2.0.156.1以降の場合)Chromeのuserdata directoryにUser Scriptsというディレクトリを作成し、実行したいスクリプトを置く -
--enable-user-scriptオプションを指定してchrome.exeを実行する
これだけ、といえばこれだけ。
10 months agoFreeBSD 7.1-RELEASE
デスクトップのVM環境とNote PC(PCG-SRX7)に入れているFreeBSDを7.1-RELEASEに更新した。VM環境はZFSをいろいろいじってみるつもりで仮想ディスク4つを追加。
Note PCの方は以前から試していた純正のPCMCIA CD-ROMドライブをようやく認識させることに成功したのでちょっとメモがわりに。
- カードを挿すとata2で認識するので、atacontrol attach ata2を実行するとCD-ROMドライブを認識する。
- カードを抜くときはatacontrol detach ata2を事前に実行しておく(不要かもしれないけど試してない)。
この辺の操作をdevdにやらせるとよさそう。これはまた今度。
11 months agoJavaFXで遊んでみる
といってもまだHello, Worldだけど。NetBeans 6.5のJavaFXアドオンをちょっと使ってみた程度。もうちょっと用意されてる部品を使ってみないといけないかな。
11 months ago