|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
Вам не кажется странным, что Rnd(-17) = Rnd(-1114111) (оба равны 0.108894348144531 )? При этом Rnd(-16) = 0.202644348144531, а Rnd(-1114110) = 0.194344997406006 ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 01:44 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
У -1114111 и -17 есть кое-что общее У -16 и -1114110 такого общего нет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 02:08 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
... кстати, дальше они начинают задваиваться подряд: Rnd(-18) = Rnd(-1179647) = 0.0151443481445313 Rnd(-19) = Rnd(-1245183) = 0.921394348144531 То есть с шагом 2^16: (1179647-1114111) = (1245183-1179647) = 65536 Однако тогда не понятно, почему Rnd(-16) не равно Rnd(-(1114111-65536)) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 02:11 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
от отчаяния продолжаю упираться в Rnd(). Сподобился посмотреть коллизии в ряду Rnd(-Sqr(N+0.1)). Оказывается (6999999;7000000) - она самая, одна из множества, идущих с шагом 1 перед 7 миллионами. Код: vbnet 1. 2. 3.
-- выдаёт 2645.75114098057 2645.75132996281 0.6062072 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 01:47 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
А в чем, собственно, проблема? Rnd - генератор псевдослучайных чисел. Для криптографии и научной работы он не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 02:06 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
Shocker.Pro, проблема в том, что мне нужен генератор псевдослучайных чисел несколько лучший, чем Rnd. А у меня его нет. Поэтому я прикладываю усилия к тому, чтобы добиться некоторого улучшения Rnd за счёт специальной организации работы с ним. В частности (но не только) мне нужно научиться вызывать Rnd() на множестве натуральных чисел так, чтобы в ряду возвращаемых значений -- типа Rnd(-f(n)) -- коллизии появлялись не слишком рано и не в слишком большом количестве. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 02:28 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
Иван FXS Shocker.Pro, проблема в том, что мне нужен генератор псевдослучайных чисел несколько лучший, чем Rnd. ... Алгоритм Простая реализация ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 08:22 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
RtlUniform RtlRandom/RtlRandomEx ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 11:12 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
вот ещё натуралистам на заметку. Если рассматривать составной ключ из двух значений Rnd(-k) и Rnd(-2*k-1), то первая коллизия у него случится ровнехонько при (2*k+1) равном 33554431, то есть за единицу до 2^25. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 16:03 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
Иван FXS, встроенная функция Rnd не предназначена для практического использования. Как уже выше писали для генерации случайных чисел надо использовать CryptoAPI ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2022, 02:03 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
Eolt, Код: vbnet 1. 2. 3. 4. 5. 6. 7.
погоняю, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2022, 21:25 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
Eolt, погонял. Первое число -- шаг цикла вызовов RGRLong, на котором возникает коллизия (с предыдущими "случайными" значениями), второе -- факультативно -- само значение, создавшее коллизию: 180428 -48233963 212707 -1009605452 214897 -733137737 220422 1818607683 227443 470532141 252687 -1520229146 253380 -1421152658 262467 1345408526 274622 -33471971 Как-то это очень подозрительно... Что я делаю (или понимаю) не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2022, 22:04 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
дотумкал: первая коллизия на шаге ~100 000 -- это нормально для 4-байтного идеального ДСЧ... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 11:27 |
|
Rnd(-17) = Rnd(-1114111) ...
|
|||
---|---|---|---|
#18+
у RtlGenRandom входной параметр - длина формируемого буфера. Замени, например, тип возвращаемого значения на Currency и посмотри, что получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:06 |
|
|
start [/forum/topic.php?fid=60&msg=40127117&tid=2154686]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 408ms |
0 / 0 |