指数化
十進BASIC_算数 へ戻る
大学生のための数学 へ戻る
2013.07.18


(1) N は 2 の何乗?

        

先生 :
  「 N は 10 の何乗ですか?」 と尋ねられたら、 「 N は 10 の 乗です。」 と答えればいいのです。 たとえば N が 500 のときは、 関数電卓を用いて を求め、 500 は 10 の 乗であることがわかります。 では、 「 N は 2 の何乗ですか?」 と尋ねられたらどう答えますか?

生徒A :
  「 N は 2 の 乗です。」 と答えます。

先生 :
  そうですね。 しかし、 これでは関数電卓を使って具体的な値を求めることができません。
  それ以外の答え方はないでしょうか?

生徒A :
  ・ ・ ・ ・ ・ ・ ・ ・ ・ ・

先生 :
  ヒントは  です。
  そして、

生徒A :
   だから 
  よって、
  そうか、 2 の 乗 ですね。

先生 :
  正解です。 このことより、 次の式が成り立っていることがわかりますね。
      
  この式は 「 対数の底の変換公式 」 になっています。 この公式を知っていた人はすぐに答えがでたと思います。 今 A さんが考えてくれたことは 「 対数の底の変換公式 」 の証明です。

  では、 ある自然数が2の何乗になっているかを教えてくれる十進BASIC のプログラムを作ってみましょう。

    INPUT
    PROMPT " 2の何乗? 調べたい自然数は? " : N
    LET P = LOG10 ( N ) / LOG10 ( 2 )
    PRINT N ; " は 2 の " ; P ; " 乗 です。"
    END


  したがって、 ある自然数 を ある自然数を底とする指数 で表現するためのプログラムは次のようになります。

    INPUT PROMPT " 指数化したい 0よりも大きい有理数は? " : N
    INPUT PROMPT " 底は? 自然数でお願いします。 " : M
    LET  P = LOG10 ( N ) / LOG10 ( M )
    PRINT N ; " は " ; M ; " の " ; P ; " 乗です。"
    END





(2) 10進数を2進数に変換する十進BASIC のプログラム

10進数を2進数に変換する十進BASIC のプログラムには次のようなものがあります。

    OPTION BASE 0
    INPUT PROMPT ; " 2進数に変換したい数は? ( 255以下の自然数 ) " : n
    LET C = n
    DIM B ( 15 )
    FOR I = 0 TO 7
      LET B ( I ) = MOD ( C, 2 )
      LET C = INT ( C / 2 )
    NEXT I
    FOR I = 7 TO 0 STEP −1
      PRINT B ( I ) ;
    NEXT I
    END
                       MOD ( a, b ) : ab で割った余り
                       INT ( c ) : c を超えない最大の整数



しかし、 これよりも美しいプログラムが 2013年度のセンター試験で紹介されました。

    INPUT PROMPT " 2進数に変換したい数は? " : N
    LET P = INT ( LOG10 ( N ) / LOG10 ( 2 ) )
    LET X = 2 ^ P
    FOR I = 1 TO P + 1
      PRINT INT ( N / X ) ;
      LET N = N − INT ( N / X ) * X
      LET X = X / 2
    NEXT I
    END



  < コピペ用の小窓 >