Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2010 16:31:30

esal
От:
Зарегистрирован: 2010-10-20
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

Привет Всем!
Тут у меня имеется вопрос по поводу чисел с плавающей точкой. Ссори за тупость, но мне надо сгенерировать числа именно с 10 знаками после запятой.(random.random() не подходит ). Подскажите, плиз, как можно добиться данного результата?



Офлайн

#2 Окт. 21, 2010 16:48:02

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

>>> a = random.random ()
>>> print a
0.85769986594
>>> b = round (a,10)
>>> print b
0.8576998659
Не подойдет?

Хотя по факту:
>>> a
0.85769986593986813
>>> b
0.85769986590000002
Получить четко округленные числа наверное не получиться, насколько я помню, такова особенность реализации Питона.
Хотя могу ошибаться.



Офлайн

#3 Окт. 21, 2010 17:03:14

esal
От:
Зарегистрирован: 2010-10-20
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

ок) а если мне надо таких чисел сделать 1 млрд и записать в текстовый файл?
Как мне это сделать?



Офлайн

#4 Окт. 21, 2010 17:14:13

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

esal
ок) а если мне надо таких чисел сделать 1 млрд и записать в текстовый файл?
Как мне это сделать?
Нескромный вопрос. А что вы собираетесь делать с текстовым файлом размером больше 10 Гигабайт? Для чего все это?



Офлайн

#5 Окт. 21, 2010 17:26:31

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

Ну судя по всему для этого:

А как записать, как-то так:

    file = open ('test','w')

for x in xrange (1000000000):
file.write (str (round(random.random (),10)))
file.write ('\n')

file.close ()
И идти пить чай… Литра два.)



Офлайн

#6 Окт. 21, 2010 17:30:42

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

pill
Ну судя по всему для этого:
Да это я читал, интересует именно для какой задачи это нужно. =)
Просто не проще их тогда писать в нужном порядке, учитывая дисперсию.
Сортировка чисел такого формата и в таких порядках задача не из простых.
Конечно если время нужное для сортировки не ограничено, апаратных ресурсов хватает и операция разовая то тут как говориться вариантов тьма.
Хоть пузырьковой сортировкой, шучу конешно… =)

Думаю вам стоит присмотреться к “Сортировке слиянием”



Отредактировано (Окт. 21, 2010 18:32:22)

Офлайн

#7 Окт. 21, 2010 19:39:03

esal
От:
Зарегистрирован: 2010-10-20
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

tmt
с текстовым файлом размером больше 10 Гигабайт?
Как Вы так примерно посчитали ? )) И на сколько больше будет данный файл, если точнее подсчитать его размер?



Офлайн

#8 Окт. 21, 2010 19:43:13

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

esal
более точное округление можно сделать через http://docs.python.org/library/decimal.html

Офлайн

#9 Окт. 21, 2010 19:44:40

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

11 байт в строке умножь на 10^9 и подели на 1024^3 получишь кол-во гигабайт



Офлайн

#10 Окт. 21, 2010 19:54:17

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

генерация чисел типа double с 10 знаками после запятой

Zubchick
+1

Думаю комп повиснет :) при

esal
а если мне надо таких чисел сделать 1 млрд и записать в текстовый файл?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version