アカウント名:
パスワード:
一つでいいから簡単に求めようという方針
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
n bit で表現できる全てのビットパターンを… (スコア:1)
多分、「乗算」対象の定数はこのビットパターンの一部分(必要なところだけを残してあとは0でマスクしたもの)だと思います。
問題は。はて…そのpackしたビットパターン、対照性を考慮したら一位決定だったっけか??? という辺り。ちゃんと覚えてないです。
fjの教祖様
Re: (スコア:1)
最初の方で云ってる「窓」がそれ。
マスクは意味的には正しいが演算的には乗算とシフトに吸収できるので無駄ってとこ。
# 逆順にすればシフトの代わりにマスクでできるかな(でもシフトの方が値が小さいので有利な事が多いかもね)?
んで、条件を満たす値はたぶん一つじゃないと思うけど、ここでは全ての値を求めようとしてるんじゃなくて一つでいいから簡単に求めようという方針なので一意かどうかはあんまり問題じゃない。9bitsみたいに中途半端な長さで最短の表を見つけようとする時には関係あるかもしれないが。
Re: (スコア:1)
あー、うん。そうなんだけれど、そうは言っても今回のように a=[0..8] な時に、lookup table を短くしようとすると出力 o(a) の範囲もなるべく [0..8] から大きく逸脱したくない。間違っても [7..15] なんて範囲の値を出されて lookup table の最初の7個は無駄です…なんてうれしくないわけで。
あと、この手のビットパッキング問題って大抵がNPと予測されている。で、いくつか例外的に Pで済む場合があるのだけれど、確かそのためには解が一通りでは駄目だった気が…なんかそんな条件があった気がするんですよ。
『Pで済む』場合って大抵、アルゴリズムが判っている、という意味なのであとはどこかに落ちているだろう、と。NPしか判っていないって事は(枝刈りの方法はあるんだろうけれど)基本的に総当たり戦、という意味になる。
fjの教祖様
Re: (スコア:1)
うん、だから「9bitsみたいに中途半端な長さで最短の表を見つけようとする時には関係あるかもしれないが」と書いたようにその問題なら関係あるかもね。でもここではちょっと違ってて、7bytesくらい無駄でもビット演算とマスクでやるよか速かったり短かったりすればOK、でも一般化はしたい。という方向を指向してるんだ。だからnを2mに切り上げて問題が9bitsでも16bitsの値とテーブルでOKなんだ。
>いくつか例外的にPで済む場合がある
Re: (スコア:1)
そして、8bits ならば必要なビット長は 256+8-1=263bitあるはずだし、32bitに至っては 4G+31 bitになるはずだ。
というわけで、ここで求めているものが『何を目標にしているのやら』よく判らない。
fjの教祖様
Re:n bit で表現できる全てのビットパターンを… (スコア:1)
# パターンのサイズでわかると思うがなー。