В каких контекстах языки программирования реально используют значение Infinity? - PullRequest
28 голосов
/ 20 декабря 2008

Так что в Ruby есть трюк для указания бесконечности:

1.0/0
=> Infinity

Я верю в Python, вы можете сделать что-то вроде этого

float('inf')

Это всего лишь примеры, я уверен, что у большинства языков есть бесконечность в некотором качестве. Когда бы вы на самом деле использовали эту конструкцию в реальном мире? Почему использовать его в диапазоне лучше, чем просто логическое выражение? Например

(0..1.0/0).include?(number) == (number >= 0) # True for all values of number
=> true

Подводя итог, то, что я ищу, является реальной причиной использования Бесконечности.

РЕДАКТИРОВАТЬ : Я ищу код реального мира. Хорошо и хорошо говорить, что это когда вы «можете» использовать это, когда люди фактически использовали это.

Ответы [ 24 ]

0 голосов
/ 14 марта 2015

Если вы хотите получить наибольшее число от входа, но они могут использовать очень большие негативы. Если я введу -13543124321.431, он все равно будет работать как наибольшее число, поскольку оно больше -inf.

enter code here
initial_value = float('-inf')
while True:
    try:
        x = input('gimmee a number or type the word, stop ')
    except KeyboardInterrupt:
        print("we done - by yo command")
        break
    if x == "stop":
        print("we done")
        break
    try:
        x = float(x)
    except ValueError:
        print('not a number')
        continue
    if x > initial_value: initial_value = x
print("The largest number is: " + str(initial_value))
0 голосов
/ 22 августа 2014

Для сортировки

Я видел, как оно использовалось в качестве значения сортировки, чтобы сказать "всегда сортируйте эти элементы снизу"

0 голосов
/ 07 ноября 2011

Вы можете использовать:

import decimal
decimal.Decimal("Infinity")

или

from decimal import *
Decimal("Infinity")
0 голосов
/ 20 декабря 2008

Некоторые программисты используют Infinity или NaN s, чтобы показать, что переменная никогда не была инициализирована или назначена в программе.

...