* Menu
[[About:self:AboutPage.txt]] | [[Profile:file/southly/]] | [[まとめ:self:1163859357.txt]] | [[オリジナル:http://ninjinix.x0.com/rn/]] | [[xyzzy:lisp/]] | [[あんてな:listall]] | [[■:lisp]] | [[buzz:files/southly#buzz]]
page 0 - << : 0 : >>
* 2007-02-21
擬似乱数生成器 Xorshift RNGs ってのを見つけた。
http://lucille.atso-net.jp/blog/?p=9
書いてみる
http://lucille.atso-net.jp/blog/?p=9
書いてみる
(let ((x 123456789) (y 362436069) (z 521288629) (w 88675123)) (defun xor128 () (let ((a (logxor x (logand #xFFFFFFFF (ash x 11))))) (shiftf x y z w) (setq w (logxor (logxor w (ash w -19)) (logxor a (ash a -8))))))) (dotimes (i 100) (format t "~8,'0x~%" (xor128)))
* xyzzy lisp : format ~F
- 実数を固定小数点表記で出力
- "@F" 常に符号を出力
- パラメータは最大5つ
- 幅
- 小数点以下部分の有効桁
- 小数点の位置をずらす
- 幅が足りず出力できないときに使う文字
- 空きを埋める文字
(format nil "~F" 123.45) "123.45" (format nil "~@F" 123.45) "+123.45" (format nil "~10F" 123.45) " 123.45" (format nil "~10,5F" 123.45) " 123.45000" (format nil "~10,5,2F" 123.45) "12345.00000" (format nil "~10,5,2,'#F" 123.45) "##########" (format nil "~10,,,,'$F" 123.45) "$$$$123.45"
* xyzzy lisp : format ~E
- 実数を指数表記で出力
- "@E" 常に符号を出力
- パラメータは最大7つ
- 幅
- 小数点以下部分の有効桁
- 指数部分の桁
- 小数点の位置をずらす
- 幅が足りず出力できないときに使う文字
- 空きを埋める文字
- 指数マーカに使う文字
(format nil "~E" 123.45) "1.2345e+2" (format nil "~@E" 123.45) "+1.2345e+2" (format nil "~10E" 123.45) " 1.2345e+2" (format nil "~10,5E" 123.45) "1.23450e+2" (format nil "~10,5,2E" 123.45) "1.23450e+02" (format nil "~10,5,2,3E" 123.45) "123.450e+00" (format nil "~10,5,2,3,'%E" 123.45) "%%%%%%%%%%" (format nil "~15,,,,,'=@E" 123.45) "=====+1.2345e+2" (format nil "~15,,,,,,'D@E" 123.45) " +1.2345D+2"
* xyzzy lisp : format ~R
- 整数を任意の基数で表現。英単語で表現。ローマ数字で表現。
- パラメータは最大5つ
- 基数
- 最小桁(幅)
- 足りない空きを埋める文字
- 区切りに使う文字
- 区切りを入れる間隔
- 基数が与えられた場合
- ":R" カンマ区切り
- "@R" 常に符号付き
- ":@R" 上記の組み合わせ
- 基数が与えられなかった場合
- "R" 英単語
- ":R" 英単語(序数)
- "@R" モダンローマ数字
- ":@R" 旧ローマ数字
(format nil "~10,10,'*,'-,2:R" 12345) "***1-23-45" (format nil "~R" 12345) "twelve thousand, three hundred and forty-five" (format nil "~:R" 12345) "twelve thousand, three hundred and forty-fifth" (format nil "~@R" 1234) "MCCXXXIV" (format nil "~:@R" 1234) "MCCXXXIIII"
* xyzzy lisp : format ~D
- 整数データの10進表記
- ":D" カンマ区切り
- "@D" 常に符号付き
- ":@D" 上記の組み合わせ
- パラメータは最大4つ
- 最小桁(幅)
- 足りない空きを埋める文字
- 区切りに使う文字(いわゆる全角文字は想定されていない。最小桁がおかしくなる)
- 区切りを入れる間隔
- 後ろ2つは":D"と":@D"のときのみ有効。"D"と"@D"では無視される。
(format nil "~D" 12345) "12345" (format nil "~:D" 12345) "12,345" (format nil "~@D" 12345) "+12345" (format nil "~:@D" 12345) "+12,345" (format nil "~10D" 12345) " 12345" (format nil "~10,'*D" 12345) "*****12345" (format nil "~10,'*:@D" 12345) "***+12,345" (format nil "~10,'*,'-,2:D" 12345) "***1-23-45"
* xyzzy lisp : format ~O
- 整数データの8進表記
- ":O" カンマ区切り
- "@O" 常に符号付き
- ":@O" 上記の組み合わせ
- パラメータは最大4つ
- 最小桁(幅)
- 足りない空きを埋める文字
- 区切りに使う文字
- 区切りを入れる間隔
- 後ろ2つは":O"と":@O"のときのみ有効。"O"と"@O"では無視される。
(format nil "~O" #o12345) "12345" (format nil "~:O" #o12345) "12,345" (format nil "~@O" #o12345) "+12345" (format nil "~:@O" #o12345) "+12,345" (format nil "~10O" #o12345) " 12345" (format nil "~10,'*O" #o12345) "*****12345" (format nil "~10,'*:@O" #o12345) "***+12,345" (format nil "~10,'*,'-,2:O" #o12345) "***1-23-45"
* clispでcgi
URIのデコード・エンコードが一応完成。
感想メモ
・whileが無くてびっくり
・xyzzy lispとの微妙な差が気になる
・(alphanumericp #\あ) => T ってなんだよ!?
[[(ReadMore...) index.rb?1141223408.txt]]
感想メモ
・whileが無くてびっくり
・xyzzy lispとの微妙な差が気になる
・(alphanumericp #\あ) => T ってなんだよ!?
[[(ReadMore...) index.rb?1141223408.txt]]
page 0 - << : 0 : >>