tarosukeの日記: n=2^aで、入力nに対応するaを求めるコード
日記 by
tarosuke
前編
ここでは当初の問題を解決する事にフォーカスしているので、ここでは簡単な手順でパターンを生成する事に集中している。なので存在するであろう他のパターンについては考慮していない。
どうもケツを決めてから探すとダメで、頭を決めて探すと簡単っぽい。
11110000を頭にして、例えばパターンが重複しない限り0、0だとダメなら1という風にビットを伸ばしていくとすんなり求まった。この場合「1111000010011010111」のパターン。ビット数が違うと...。
例えば3bits。4bitsの場合にならって初期値を111000とすると、あっさり「1110001011」になった。
あと、初期値の次は0にはなり得ない(でないと0が重複する)ので初期値は4bitsの場合は111100001、3bitsの場合は1110001までは確定できる。
--
5bitsの場合は「111110000010001100101001110101101111」になった。これも手戻りはなしですんなり決まった。証明こそしてないが手順はこれでよさそうな気がする。
--
さらに、デフォルト0のルールであれば初期値の次は必ず0なので4bitsなら1111000010までは機械的に確定できる。つまりaのビット数分(m)の1と0を続け、次に10を続ける。もしかすると10の0はm-2個続き、さらにその次が1でさらに0がm-3個続くのかも知れないがそこまで言い切るのはまだ早いかも。
n=2^aで、入力nに対応するaを求めるコード More ログイン