「計算機イプシロン」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator (→Python) |
||
3行目: | 3行目: | ||
浮動小数点の仮数指数表記では「1未満」だと指数部だけを使ってどこまでも小さくなってしまうため、何が何でも仮数部を使うために「1以上」の数字を用いる。そこから1を引けば純粋に「最小の数」になる。 | 浮動小数点の仮数指数表記では「1未満」だと指数部だけを使ってどこまでも小さくなってしまうため、何が何でも仮数部を使うために「1以上」の数字を用いる。そこから1を引けば純粋に「最小の数」になる。 | ||
− | == 計算 == | + | ==計算== |
− | * 浮動小数点変数に1を代入する | + | *浮動小数点変数に1を代入する |
− | * 浮動小数点変数をひたすら1/2していく | + | *浮動小数点変数をひたすら1/2していく |
− | * 浮動小数点変数がゼロになったら直前の値が計算機イプシロン | + | *浮動小数点変数がゼロになったら直前の値が計算機イプシロン |
− | === PHP === | + | ===PHP=== |
[[PHP]]での実装例。<syntaxhighlight lang="php"> | [[PHP]]での実装例。<syntaxhighlight lang="php"> | ||
<?php | <?php | ||
22行目: | 22行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === Python === | + | ===Python=== |
− | + | [[Python]]での実装例。 | |
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
a = 1.0 | a = 1.0 | ||
32行目: | 32行目: | ||
print("{0:09.8E}".format(b)) | print("{0:09.8E}".format(b)) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == 関連項目 == | + | ==関連項目== |
− | * [[.NETのfloat.Epsilon定数は計算機イプシロンではない]] | + | *[[.NETのfloat.Epsilon定数は計算機イプシロンではない]] |
2019年2月20日 (水) 02:12時点における最新版
計算機イプシロン(英語:machine epsilon)とは、その計算機(コンピューター)で扱える「1より大きい最小の数」のことである。
浮動小数点の仮数指数表記では「1未満」だと指数部だけを使ってどこまでも小さくなってしまうため、何が何でも仮数部を使うために「1以上」の数字を用いる。そこから1を引けば純粋に「最小の数」になる。
計算[編集 | ソースを編集]
- 浮動小数点変数に1を代入する
- 浮動小数点変数をひたすら1/2していく
- 浮動小数点変数がゼロになったら直前の値が計算機イプシロン
PHP[編集 | ソースを編集]
PHPでの実装例。
<?php
$a = 1.0;
$b = 0.0;
while ( 0 < $a )
{
$b = $a;
$a = $a / 2;
}
print($b . "\n");
Python[編集 | ソースを編集]
Pythonでの実装例。
a = 1.0
b = 0.0
while 0 < a :
b = a
a = a / 2.0
print("{0:09.8E}".format(b))