「計算機イプシロン」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
 
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での実装例。
+
[[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))

関連項目[編集 | ソースを編集]