2015-12-14 5 views
11

ここでは、変数をプログラムに無限の値を格納するという点は何でしょうか?実際に使用されていますか?foo = float('Inf')を使用することが望ましい場合もありますか、それを入れるためにちょっとしたスニペットですか?Pythonでfloat( 'Inf')のポイントは何ですか?

答えて

21

これは比較のための無制限の上限値として機能します。これは何かのための最低値を見つけるのに便利です。たとえば、ツリーをトラバースするときにパスのルートコストを計算します。

オプションのリストに「安い」のパスを見つける:あなたはあなたに利用float('Inf')を持っていなかった場合

>>> lowest_path_cost = float('inf') 
>>> # pretend that these were calculated using some worthwhile algorithm 
>>> path_costs = [1, 100, 2000000000000, 50] 
>>> for path in path_costs: 
... if path < lowest_path_cost: 
...  lowest_path_cost = path 
... 
>>> lowest_path_cost 
1 

は、あなたがthe initial lowest_path_costのためにどのような値を使うのでしょうか? 9999999で十分でしょうか - float('Inf')はこの推測を削除します。 documentationから

5

多くの浮動小数点機能が追加されました。 float()関数は という文字列をIEEE 754 Not A Number値に、+ infを -infに正または負の無限大に変換します。これは、IEEE 754のセマンティクスを持つ任意のプラットフォームで動作します。 (クリスチャンHeimes寄稿;問題 1635)

また、この参照してください:Working with Infinity and NaNs

関連する問題