小分類:離散数学1.問題2.解説1.問題aを正の整数とし,b=a2とする。aを2進数で表現するとnビットであるとき,bを2進数で表現すると高々何ビットになるか。注:問題文にある「高々」というのは、「最高で」という意味です。これといった、うまい方法が無いですね。一部で、「公式を導き出す」-「2.簡単な例で考えてみる」が使えるようです。◆普通に解く実際に、n桁で最大となる数値を2乗して桁数がどうなるか計算します。2進数でnビットの最大値は、1111...112ですね(1がn個)。1000...002(※(n+1)桁。※注:簡単に導出しているように見えますが、実際には簡単な例(n=2のときとか)で確認しています。したら、2乗しましょう。1000...0002(※(2n+1)桁。100..002(※(n+1)桁。計算後は、(2n+1)桁よりも小さな値になりますから、2n桁になります。よって、答えはイです。◆対数を使って解く(※注:要高校数学)高校数学で、10進数の場合ですが、対数と桁数の関係を勉強したと思います。それを使って解きます。n-1が成り立ちます(※意味がわからない人は対数を外して考えてください。