Вверх ↑
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
#16: 2021-11-11 14:09:49 ЛС | профиль | цитата
Леонид, а как это решает проблему равномерности распределения, если каждый день предустановка будет разная и генератор будет запущен заново, без связи с предыдущей генерацией? И чем дата в Unix формате не подходит? Тоже целое число. Взаимодействие с подписчиками будет минимальным, возможно не будет даже центрального сервера, поэтому и нужна дата чтобы синхронизация и проверка генератора была headless, децентрализованной. Время по Гринвичу UTC и не нужно публиковать ничего и рассылать.

Редактировалось 1 раз(а), последний 2021-11-11 14:10:34
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 8923
Рейтинг: 823
#17: 2021-11-11 15:54:03 ЛС | профиль | цитата
Aziz, вы хотите и рыбку съесть...
Начали с того, чтобы каждый пользователь мог убедиться в отсутствии "злого умысла", а сейчас "время по Гринвичу UTC и не нужно публиковать ничего". Используйте doRandomize и компьютерные тики вместо Гринвича
Проблема равномерности решается удалением из розыгрыша уже выигравших пользователей
равномерность


Add(MainForm,2953706,161,112)
{
link(onCreate,11048054:doEvent1,[])
}
Add(ListBox,8405097,322,126)
{
Left=10
Top=5
Width=140
Height=250
DataType=1
}
Add(MultiElement,13530796,245,126)
{
link(onEvent1,8405097:doAdd,[])
}
BEGIN_SDK
Add(EditMulti,7908364,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,8498706:doFor,[(74,27)(74,48)])
}
Add(For,8498706,84,42)
{
End=99
link(onEvent,7085669:doOperation,[])
}
Add(Math,7085669,147,42)
{
Op1=1
ResultType=0
link(onResult,13330600:doString,[])
}
Add(FormatStr,13330600,196,42)
{
Mask="Игрок №%1"
link(onFString,7908364:onEvent1,[(235,48)(235,27)])
}
END_SDK
Add(Button,5888757,98,182)
{
Left=165
Top=60
Width=135
Caption="Выбрать победителя"
link(onClick,4119673:doOperation,[])
}
Add(Random,4707942,238,189)
{
Max=0
Point(doRandSeed)
Point(Max)
Point(doMax)
link(onRandom,10464415:doEvent1,[])
link(Max,4119673:Result,[(244,173)(187,173)(187,222)(153,222)])
}
Add(ArrayRW,15170466,322,189)
{
link(onRead,6321611:doText,[])
link(Array,8405097:Array,[(328,173)(342,173)])
}
Add(Label,6321611,378,189)
{
Left=175
Top=170
Width=4
Height=4
Font=[MS Sans Serif,12,1,0,1]
Caption=""
}
Add(Math,4119673,147,182)
{
OpType=1
Op2=1
ResultType=0
link(onResult,16732158:doEvent1,[])
link(Op1,8405097:Count,[(153,166)(335,166)])
}
Add(Hub,10464415,280,189)
{
link(onEvent1,15170466:doRead,[])
link(onEvent2,8405097:doDelete,[(305,202)(305,146)])
}
Add(Hub,16732158,196,182)
{
link(onEvent1,4707942:doMax,[(219,188)(219,216)])
link(onEvent2,4707942:doRandom,[])
}
Add(Hub,11048054,203,126)
{
link(onEvent1,13530796:doWork1,[])
link(onEvent2,4707942:doRandomize,[(228,139)(228,202)])
}

Нажмите 100 раз и каждый выиграет по разочку
карма: 19

0
Ответов: 1291
Рейтинг: 47
#18: 2021-11-11 21:59:28 ЛС | профиль | цитата
Леонид, писец, писал развернутый ответ, но оказывается сессия завершена была и все пропало при отправке. Коротко: меня могут убить и я не хочу чтобы проект рухнул из-за централизации когда им некому будет управлять.
Удаление выигравших чисел не решает проблему равномерности, тк генератор может выдавать чаще числа в первой десятке и реже в остальных случаях, что при числе розыгрышей меньшем числа пользователей вызовет перекос и мертвые зоны.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 8923
Рейтинг: 823
#19: 2021-11-11 22:33:41 ЛС | профиль | цитата
Aziz писал(а):
что при числе розыгрышей меньшем числа пользователей вызовет перекос и мертвые зоны

Так на то он и случай, а не ручное управление. Равномерность бывает лишь на больших выборках и то с пробелами. Абсолютная равномерность получится на нашем 32-битном генераторе при 4 294 967 296 попытках
карма: 19

0
Ответов: 1291
Рейтинг: 47
#20: 2021-11-12 01:43:40 ЛС | профиль | цитата
Наверное, тут уже нужно углубляться в теорию. Идеально равномерным может быть лишь линейный счетчик. Нужно придумать такую формулу заполнения числами матрицы из 100 элементов, чтобы как и линейный счетчик, она заполняла все 100 ячеек за 100 итераций, но "случайно". Это будет критерий равномерности и уникальности.
Вообще кажется мы пытаемся поймать черную кошку которой нет в черной комнате, тк случайности не существует.. Случай - лишь непознанная закономерность, так что, случайное число невозможно и в реальном мире, в природе. Тепловой шум резисторов, если копнуть глубже - далеко не случаен.. В конечном счете все это приводит нас к религии)
Может, стоит заменить слово "случайность" словом "неожиданность" ? Генератор неожиданных чисел)) ГНЧ )

Редактировалось 2 раз(а), последний 2021-11-12 01:49:17
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 8923
Рейтинг: 823
#21: 2021-11-12 11:01:20 ЛС | профиль | цитата
Aziz писал(а):
тут уже нужно углубляться в теорию
Это надо было делать ДО того
Тепловой шум -- самая чистая случайность с "нормальным" распределением. А наши RND - генераторы равномерно распределённых не повторяющихся чисел или псевдослучайные.
карма: 19

0
Ответов: 1291
Рейтинг: 47
#22: 2021-11-12 12:07:52 ЛС | профиль | цитата
Леонид, я практик - гуманитарий)
Кавкая же это случайность, если подчиняется строгим физическим законам? Если их все учесть то он тоже станет псевдослучайным) Все это дает надежду заработать на бирже и на потустороннюю жизнь)
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 8923
Рейтинг: 823
#23: 2021-11-12 16:23:09 ЛС | профиль | цитата
Aziz писал(а):
если подчиняется строгим физическим законам
И именно эти законы определяют идеальность шума
Ну и по надежде, повторюсь ещё раз : любая система проигрывает случаю!
Вот "Однорукий бандит" с 95% выигрыша, проверьте https://yadi.sk/d/JBy8SCsrhZ44q
карма: 19

0
Ответов: 1291
Рейтинг: 47
#24: 2021-11-13 02:05:19 ЛС | профиль | цитата
Леонид, спасибо за бандита), интересная схема.
Леонид писал(а):
И именно эти законы определяют идеальность шум

звучит примерно как "законы определяют идеальность беззакония") Потому что шум - это кажущееся отсутствие законов.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#25: 2021-11-13 03:59:15 ЛС | профиль | цитата
Вот набросал тестовую схему. Интересно что при генерации при помощи сида от линейного счетчика, получаются интересные узоры, но видно что неравномерное распределение.
В общем нашел способ как решить проблему обозначенную в начале топика. Просто заранее сгенерировать список чисел со случайным равномерным распределением, а оттуда уже в принципе без разницы как делать выборку, каким указателем. В программе данный табличный режим запускается кнопкой RND2.
Для работы схемы нужны некоторые точки в модифицированном элементе, поэтому включил и его и экзешник в архив.
Небольшой глюк остался в компоненте - при сбросе несколько раз подряд, если при этом задействовать и точку Break, то спустя некоторое количество нажатий на кнопку Reset программа вылетает. А если вручную сначала жать на Break и потом Reset то нет.



Редактировалось 2 раз(а), последний 2021-11-13 04:10:02
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
файлы: 1Random sequence test 1.zip [112.7KB] [411]
25
Сообщение
...
Прикрепленные файлы
(файлы не залиты)