パスワードを忘れた? アカウント作成
462589 journal

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個続くのかも知れないがそこまで言い切るのはまだ早いかも。

この議論は、tarosuke (2403)によって テキ禁止として作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...