アカウント名:
パスワード:
#define get_a(n) ("0125396bf48ae7dc"[n * 0x9af0000u >> 28])int main(){ int i; for(i=1 ; i<=15 ; i++){ unsigned int n=(1<<i); printf("%d : %c\n", n, get_a(n) ); } return 0;}
2 : 14 : 28 : 316 : 432 : 564 : 6128 : 7256 : 8512 : 91024 : a2048 : b4096 : c8192 : d16384 : e32768 : f
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds
試行錯誤でも意外と簡単だった(?) (スコア:1)
"\0\1\2\4\x9\3\6\xd\xa\5\xb\7\xf\xe\xc\x8"[n * 0x9af0000 >> 28]
# ただし、演算は32bits符号無し整数。異常値でも配列をはみ出さないが結果も異常値。
Re:試行錯誤でも意外と簡単だった(?) (スコア:1)
# 見やすくするために、テーブルはバイナリじゃなくてchar化しました。
うーむ、やっぱり試行錯誤しか見つける手段はないんでしょうかねえ。
Re:試行錯誤でも意外と簡単だった(?) (スコア:1)
# 手計算とは言え、どーしてそんな派手に...。インデクスと値が逆になってるとは思ったけどそうでもなさそうだし。
もっと汎用的に、例えばC++のテンプレートメタプログラミングでビット数指定して生成したりできないかなー。とか思ってみたりする。