パズル、ゲーム、数学(算数?)などの好きなことを書き留めていきます。
問題の答えです。偶数と奇数の違いは、2で割り切れるか、2で割って1余るかの違いです。その違いを検出するために、n/2を考えてみる。偶数の場合:n = 2k, 奇数の場合:n = 2m + 1とすると、n/2 = k(n:偶数) または m + 1/2(n:奇数)ここで、床関数を施すと、[n/2] = k(n:偶数) または m(n:奇数)ここで、奇数の2で割った余りの部分であった1/2が床関数によって消えている。偶数の場合に変化の無いように、2倍すると、2[n/2] = 2k(n:偶数) または 2m(n:奇数)つまり、2[n/2] = n(n:偶数) または n - 1(n:奇数)となり、f(n) = 2[n/2]とすれば、目的の出力が得られる。
問題の答えです。
返信削除偶数と奇数の違いは、2で割り切れるか、2で割って1余るかの違いです。
その違いを検出するために、n/2を考えてみる。
偶数の場合:n = 2k, 奇数の場合:n = 2m + 1とすると、
n/2 = k(n:偶数) または m + 1/2(n:奇数)
ここで、床関数を施すと、
[n/2] = k(n:偶数) または m(n:奇数)
ここで、奇数の2で割った余りの部分であった1/2が床関数によって消えている。偶数の場合に変化の無いように、2倍すると、
2[n/2] = 2k(n:偶数) または 2m(n:奇数)
つまり、
2[n/2] = n(n:偶数) または n - 1(n:奇数)
となり、f(n) = 2[n/2]とすれば、目的の出力が得られる。