cielacanthの日記 RSSフィード

2007-06-11

[][]小数点数の量子化 01:23

某掲示板に投稿したもの

X[0.0 〜 2.0]の値を取る小数点数をY[0 .. 31]の整数型に量子化することを考える。普通に考えるとこうなる。

  1. X が 2.0 を含まない場合
    1. Y = trunc(X * 32 / 2.0)
  2. X が 2.0 を含む場合(Z = X * 31 / 2.0 と置く)
    1. Y = trunc(Z)
    2. Y = trunc(Z + 0.5) *1

X が 2.0 を含まない場合は全く問題ない。しかしそうで無い場合は2-2を使っても

  • 0.0 <= Z < 0.5 → Y = 0
  • 0.5 <= Z < 1.5 → Y = 1
  • 30.5 <= Z <= 31.0 → Y = 31 *2

つまりY=0, 31の場合だけ、とれるZの範囲が半分になってしまう。この場合の量子化を正確に行うのは少し難しい。

改良案1)

  • Z = X * (32 - delta) / 2.0 (deltaは適度に小さい数。Xが整数値ならdelta = 1)
  • Y = trunc(Z)

としてYを計算する方法がある。つまり 0.0 <= X <= 2.0 の値を 0.0 <= Z <= 31.99999... に写像してしまえばいい。

改良案2)

X = 2.0 や Y = 32 の値だけを特別扱いする。つまり、

  • Y = trunc(X * 32 / 2.0)
  • if (Y == 32) Y = 31 or Y -= (Y >= 32) or Y -= (Y >> 5)

としてしまう方法もある。

*1: 1だとXがきっかり2.0のときしかYが31にならないので少し改良

*2: Zの最大値は31のため

いいよいいよーーwwwwwいいよいいよーーwwwww 2009/06/14 20:31
シャワー後にイ ラ マ チ オ・ク ン ニで指ホジリしながらクリを攻めていたら
女はカリに舌をレロレロしながら足ピーン!でヒクヒクでした(´・ω・`)
下口がつゆだくだったので、もちろんそのまま生騎乗(`・ω・´)
女がイって思考回路落ちてる隙を狙って中 出 し実行wwwwww
やっぱ中 出 しがイイよねー(・∀・)!!

http://shiofuki.navi-y.net/LzLE6SZ/

しゅおおぁあああ!!!!!しゅおおぁあああ!!!!! 2009/06/22 06:30
あっもう!ちょ!!!凄い!!!凄いよ!!!!!
あぁぁテンション上がりすぎて何から言えばいいかわかんねwww
勃.起おさまんねーし今からもっかい行ってくるwwwwwww

http://ahan.yumenokuni.net/eY90BwF/

いよっしゃーーっ!!!!いよっしゃーーっ!!!! 2009/06/22 07:36
これ始めたら女釣れすぎーw ww
いつもテ〃リ嬢に金払ってたのがバカみてぇ。。
だってヤる度に金くれんだもんヽ(´ー`)ノ
ぶっちゃけ風俗は卒業ッス(´ー`)y─┛~~

http://dopyun.quitblue.com/TRhVHLX/