Обработка очень больших количеств в Python

Готово, это было плохо. часть моего кода была неправильной, спасибо

120
задан tshepang 9 March 2014 в 07:34
поделиться

4 ответа

Python поддерживает целый тип "сверхбольшого числа", который может работать с произвольно большими количествами. В Python 2.5 +, этот тип называют long и является отдельным от эти int тип, но интерпретатор будет автоматически использовать, какой бы ни является более соответствующим. В Python 3.0 +, эти int тип был отброшен полностью.

Это - просто деталь реализации, хотя —, пока у Вас есть версия 2.5 или лучше, просто выполните стандартные математические операции и любое число, которое превышает границы 32-разрядной математики, будет автоматически (и прозрачно) преобразован в сверхбольшое число.

можно найти все окровавленные детали в PEP 0237.

157
ответ дан Ben Blank 24 November 2019 в 01:37
поделиться

Python поддерживает произвольно большие целые числа естественно:

In [1]: 59**3*61**4*2*3*5*7*3*5*7
Out[1]: 62702371781194950
In [2]: _ % 61**4
Out[2]: 0
25
ответ дан Autoplectic 24 November 2019 в 01:37
поделиться

Вы могли сделать это ради удовольствия, но кроме которого это не хорошая идея. Это не ускорило бы ничего, о чем я могу думать.

  • Получение карт в руке будет целочисленной операцией факторинга, которая является намного более дорогой, чем просто доступ к массиву.

  • Добавляющие карты были бы умножением, и разделением карт удаления, обоими из больших чисел многословных, которые являются более дорогими операциями, чем добавление или удаление элементов из списков.

  • фактическое числовое значение руки ничего не скажет Вам. Необходимо будет учесть начала и следовать правилам Покера сравнить две руки. h1 < h2 для таких рук ничего не означает.

29
ответ дан 24 November 2019 в 01:37
поделиться

Интерпретатор Python обработает его для Вас, просто необходимо сделать операции (+, - *,/), и это будет работать нормальным.

Эти int значение неограниченно.

Осторожный при выполнении подразделения, по умолчанию частное превращено в float, но float не поддерживает такие большие количества. Если Вы добираетесь, сообщение об ошибке, говоря float не поддерживает такие большие количества, то это означает, что частное является слишком большим, чтобы быть сохраненным в float, you’ll должны использовать подразделение пола (//).

Это игнорирует любое десятичное число, которое прибывает после десятичной точки, этого пути, результат будет int, таким образом, у Вас сможет быть результат большого количества.

10//3 Выводы 3

10//4 выводы 2

0
ответ дан 24 November 2019 в 01:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: