2018年3月31日土曜日

学習環境

数学読本〈6〉線形写像・1次変換/数論へのプレリュード/集合論へのプレリュード/εとδ/落ち穂拾い など(松坂 和夫(著)、岩波書店)の第23章(数学の中の女王 - 数論へのプレリュード)、23.2(合同式)、合同式の除法、問8.を取り組んでみる。


  1. 2 10 = 1024 24 m o d 100

    よって求める余りは24。

    2 20 = 2 10 2 2 4 2 - 24 76 m o d 100

    よって求める余りは76。

    2 100 = 2 10 10 2 4 10 = 2 4 2 5 - 24 5 = - 2 4 5 = - 24 2 4 2 2 - 24 - 24 2 = - 24 · 2 4 2 2 4 2 - 24 76 m o d 100

    よって求める余りは76。

    2 100 - 1 - 24 - 1 = - 25 75 m o d 100

    よって、求める余りは75。

    2 100 - 1 99 - 25 99 = - 2 5 99 - 25 75 m o d 100

    よって、求める余りは75。

    2 100 - 1 100 75 · 75 = 9 · 2 5 2 9 · 25 = 225 25 m o d 100

    よって、求める余りは25。

コード(Emacs)

Python 3

#!/usr/bin/env python3

nums = [2 ** 10, 2 ** 20, 2 ** 100, 2 ** 100 - 1,
        (2 ** 100 - 1) ** 99, (2 ** 100 - 1) ** 100]
for n in nums:
    print(n % 100)

入出力結果(Terminal, Jupyter(IPython))

$ ./sample8.py
24
76
76
75
75
25
$

HTML5

<pre id="output0"></pre>
<button id="run0">run</button>
<button id="clear0">clear</button>

<script src="sample8.js"></script>

JavaScript

let pre0 = document.querySelector('#output0'),
    btn0 = document.querySelector('#run0'),
    btn1 = document.querySelector('#clear0'),
    p = (x) => pre0.textContent += x + '\n';

let nums = [2 ** 10, 2 ** 20, 2 ** 100, 2 ** 100 - 1,
            (2 ** 100 - 1) ** 99, (2 ** 100 - 1) ** 100];

let output = () => {
    p(nums.map((n) => n % 100).join('\n'));
};

btn0.onclick = output;
btn1.onclick = () => pre0.textContent = '';
output();















						

0 コメント:

コメントを投稿