2016年07月08日

99^99 の 1 の位はいくつ?

 ≫ [Amazon書籍] 関数型プログラミングの基礎 JavaScript を使って学ぶ

 前回に引き続いて合同式を使った問題です。
 想像もできないような桁をもつ巨大数を扱いますよ。
 9999 なんて、Excel を使っても正確に計算することはできません。

問題26 9999 の 1 の位は? [高1★★☆☆☆]

(1) 9999 の 1 の位はいくつですか。
(2) 19921992 の 1 の位はいくつですか。

[ヒント] 法 (mod) の選び方がポイントです。
 
≫ [Amazon書籍] スワップ取引(バーゼルV、CCP、CVA、FVA、OISカーブ)

解答26(10 で割ったときの余りを求めます)

 1 の位を求めるということは、つまり 10 で割ったときの余りを求めるということです。よって法は 10 を選択します。

(1) 99 ≡ 9 (mod 10) ですから、べき乗定理によって

99 ≡ 999 (mod 10)

が成立します。ここで

999 = 92 × 49 + 1 = (92 ) 49 × 9

のように書けますが、 92 ≡ 1 (mod 10) ですから乗算定理によって

999 ≡ 1 × 9 = 9 (mod 10)

が得られます。

[別解] 実はこの問題に関しては合同式を用いなくても簡単に解けます。

91 = 9, 92 = 81, 93 = 729, ......

というように 1 の位には 9 と 1 が交互に現れます。指数部分が奇数なら 9, 偶数なら 1 という規則になっていますね。よって 999 の 1 の位は 9 であることがわかります。

(2) さらに大きな桁が登場しましたね。しかしどれだけ数が大きくても (1) と同じ手法で解くことができます。そこが合同式のすごいところです。まず 1992 という数字に対して

1992 ≡ 2 (mod 10)   (*)

が成り立ちます。そこで 21992

21992 = (24)498

と書けますから、24 について余りがわかればいいのです。

24 = 16 ≡ 6 (mod 10)

ですから、

(24)498 ≡ 6 (mod 10)

すなわち

21992 ≡ 6 (mod 10)

が成り立っていることがわかりました。 (*) を 1992 乗して

19921992 ≡ 21992 ≡ 6 (mod 10)

となるので 1 の位は 6 であることがわかります。

Excel には余りを求める mod 関数が用意されています

 Excel を使える環境にある人は MOD 関数を使って合同式の勉強に役立ててみてください。

=MOD(数値,除数)

と入力すると「数値」を「除数」で割ったときの「余り」を返してくれます。たとえば、

=MOD(32,6)

と入力すれば "2" という値が返ってきます。ただ冒頭にも述べたように、数字があまりに大きいとエラーになってしまいますから、残念ながら今回のような問題には使えないのです。どのぐらいの桁まで正確に計算できるのか、まだきちんと調べたことはありませんけど、そのあたりの事情に詳しい人はぜひコメントください。
 
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
http://fanblogs.jp/tb/5231414
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
Excel VBA 数学教室
数学問題集(解答付き)
こばとの数学基礎講座
下剋上算数
ベクトル解析
サッカーマティクス
Excelで学ぶ統計解析
和算的思考力
学び直し
整数論の理論と演習
大人が手こずる算数
東大生の知恵袋
フーリエ変換
インド式秒算術
Excelで学ぶ微分積分
Excel 数学シミュレーション
オイラーの贈物


ファン
最新記事
カテゴリーアーカイブ