Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 17, 2009 20:34:39

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

приветствую!

есть задача - необходимо сгенерировать число определенного размера, например 512 бит.

какие будут предложения ? :)
сам придумать ничего не смог, гугл пока не помог, но я продолжаю поиски.



Офлайн

#2 Сен. 17, 2009 21:06:36

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

что-то вроде random.randrange(2 ** 512) ?



Офлайн

#3 Сен. 17, 2009 21:45:01

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

pasaranax
что-то вроде random.randrange(2 ** 512) ?
я думаю что нет, потому что это будет число от 0 до 2** 512, а 0, 10 или 100 это не 512 бит.

еще варианты?



Офлайн

#4 Сен. 17, 2009 22:00:04

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

random.randint(1 << 511, (1 << 512) - 1)



Отредактировано (Сен. 17, 2009 22:00:56)

Офлайн

#5 Сен. 17, 2009 22:12:04

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

:)
варианты появились, а вот как проверить что это именно 512 бит ? )))



Офлайн

#6 Сен. 17, 2009 22:22:57

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

К результату применить операцию & (1 << 511) я полагаю :)



Офлайн

#7 Сен. 17, 2009 22:32:30

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

ну тогда random.randrange(2 ** 511, 2 ** 512)



Отредактировано (Сен. 17, 2009 22:36:29)

Офлайн

#8 Сен. 18, 2009 03:37:20

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

генерация числа размером в 512 бит

Ребята, вы вообще о чем? Есть два разных понятия: число само по себе и его битовое представление в определенном формате. Как я понял, неявно предполагается, что это классическое целое в дополнительном коде, двоичное представление, LSB, размером в 64 байта.
Биты имеет смысл считать только если определились с формой двоичной записи. И интересны они становятся только при побитовом (побайтовом) доступе.



Офлайн

#9 Сен. 18, 2009 09:33:12

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

генерация числа размером в 512 бит

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



Отредактировано (Сен. 18, 2009 09:36:06)

Офлайн

#10 Сен. 18, 2009 10:23:08

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

генерация числа размером в 512 бит

А я решил что ему надо (2**512)-1 - это когда все 512 бит будут заполнены единицами. Ну в двоичной форме записи конечно.

print (bin(2**512-1))
print (oct(2**512-1))
print (hex(2**512-1))
print (2**512-1)

>>>
0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
0377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777L
0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffL
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095
>>>



Отредактировано (Сен. 18, 2009 10:34:53)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version