python入門: 計算誤差を体験しよう
計算機は, 情報をデジタルで扱うために, どこかで誤差が生じる。そのことを体験して理解しよう。
課題: pythonで以下の計算を行え(それぞれ0は15個):
1000000000000000.1-1000000000000000
答はぴったり0.1になるはずなのに... !? このような現象を, 「桁落ち」という。桁落ちについて, 検索などで原因を調べてみよ。
課題: pythonで, for文を使って, 0.000001を100万回, 足してみよ。1に等しくなるか?
課題: pythonで, for文を使って, 10000000000, つまり10^10に, 0.000001を100万回, 足してみよ。正しい値, つまり10000000001.0になるか?
課題: pythonで, for文を使って, 1000000000000, つまり10^12に, 0.000001を100万回, 足してみよ。正しい値, つまり1000000000001.0になるか?
これらのような困った現象を, 「精度落ち」という。精度落ちについて, 検索などで原因を調べてみよ。
課題: pythonで以下の計算を行え:
10.0**10 10.0**100 10.0**1000
この問は, 10.0の累乗を求めているが, 10.0の100乗は平気だけど, 10.0の1000乗はエラーが出るだろう。この現象を「オーバーフロー」という(調べてみよう!)。では, 10.0の何乗までならできるだろうか? 試してみよう!!
Keyword(s):
References: