アカウント名:
パスワード:
if (x.eq.1) return 0if (x.eq.2) return 1if (x.eq.4) return 2if (x.eq.8) return 3(中略)if (x.eq.512) return 9stop 'illegal x'
#define func1to9(x) ( 9 - (2271560481U*(x>>1)*(x>>1)*(x>>1)*(x>>1) >> 28) )#define func0to8(x) ( 8 - (2271560481U*x*x*x*x >> 28) )
"\1\2\3\010\6\4\011__\7\5"[n*0x5300000>>28];
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
別解 (スコア:1)
ぼくがなにか勘違いしているのかな。
love && peace && free_software
t-nissie
Re:別解 (スコア:1)
ということで、1, 2, 4, ... 512 の完全最小ハッシュを作る、というのが最小の解のようです。(乗算x1, ビットシフトx1, インデックスメモリ参照x1)
Re:別解 (スコア:1)
例えば、ハッシュテーブルを作るための計算量が丸々無視されている。
メモリをいくら使っても構わないのであれば 0..512 の 513エントリの表を持てばいいだけです。そういう意味ではTable Lookupは最後の手段だと思いますね。
.
いや、実生活で本当にこういう問題があるなら話は別だけどさ。誰がどう見ても『学生演習』の類だもの。こういうのは趣味丸出しにしないと\(^o^)/
fjの教祖様
Re:別解 (スコア:1)
これが題意か。納得。しかし、
>(乗算x1, ビットシフトx1, インデックスメモリ参照x1)
ここまで小さくできないです。これがぼくの限界か(32bit限定だし): 0≦a≦8のほうが綺麗に書けるから、わざわざ1≦a≦9にしているのを使っていないのか…
love && peace && free_software
t-nissie
Re:別解 (スコア:1)