|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sergey Andrianov 2:5020/1507.400 06 May 2002 22:54:34 To : Stanislav Aranovsky Subject : Re: слyчайно 0-1 --------------------------------------------------------------------------------
Однажды 29-Apr-02 в 02:08 Stanislav Aranovsky (2:5030/1044.29)
написал All по поводу
-=- слyчайно 0-1 -=-
SA> Подскажите алгоpитм генеpации слyчайного числа в пpеделах только 0-1,
SA> котоpый pаботал бы быстpее rand(). Едиственное, что пpиходит в головy -
SA> один pаз генеpить динное число, а потом пpосто пpобегать его по битам,
SA> после чего генеpить число заново. Можно ли пpидyмать что-нить быстpее?
Можно.
Стандартный rand() сначала генерирует число в достаточно широком диапазоне, а
затем делением приводит диапазон к требуемому. В случае, когда требуемый
диапазон равен степени двойки, вместо долгого деления можно использовать маску
со сдвигом.
В свое время для программы, тестирующей время произвольного доступа к памяти,
я подбирал наиболее быстро работающий ГПСЧ для задания адреса в памяти, по
которому следует делать очередную выборку. При этом сумел добиться того, что
ДПСЧ работал в несколько раз быстрее (на современных процессорах более чем на
порядок), чем происходит выборка из ОЗУ. Если интересует исходник - в мыло, т.к.
я сомневаюсь, что ассемблерные изыски попадают в топик этой эхоконференции.
До свидания, в 22:48 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/52053CD709AB.html, оценка из 5, голосов 10
|