Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 22 23 24 ... 41 42
Wyślij wiadomość do admina

Przewiń wpisy ↓

Generator kombinacji gier liczbowych (moderator tematu: Amadeus)

2015-02-26 (13:54)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 879 795
[ CZCIONKA MONOSPACE ]



W grach z losowaniami wirtualnymi dominują rozwiązania G-Tech, a ta z kolei korzysta ze sprzętowych modułów generujących firmy idQuantique:

http://cs.ucsb.edu/~koc/ccs130h/projects/09-quantum/qrng.pdf



Gdzieniegdzie udziela się SmartPlay:

http://www.smartplay.com/dmsBrowser.html



2015-02-26 (13:59)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 797
[ CZCIONKA MONOSPACE ]

Amadeus,

Dobrze wiesz, ze popsuty oznacza nielosowy, trudno sobie wyobrazić generator losowy który by częściej losował liczbę 1 niż na przykład 2 i dlatego pisałem trochę żartem o antygeneratorze.

Zresztą coś podobnego sugerowała kiedyś Kurka.

Można by jeszcze ewentualnie filtrować wyniki z generatora losowego.

--- wpis edytowano 2015-02-26 14:07 ---

2015-02-26 (14:06)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 879 801
[ CZCIONKA MONOSPACE ]



@Ken



I właśnie tak jest w losowaniach, bo na pewno liczby nie wypadają "po równo" mimo wysiłków ekipy TS



Definiowanie losowości w oparciu o częstotliwość wypadnięć jest bardzo ryzykowne, co pokazuje nam "najbardziej losowa sekwencja na świecie",

czyli sekwencja Champernowne'a: http://tinyurl.com/oaxm9e7



2015-02-26 (14:07)

status kleszek
Data rejestracji: 2006-05-27
Ilość postów: 4979

2047
wpis nr 879 803
[ CZCIONKA MONOSPACE ]

Ken, napisałeś "Więc sensowne najpierw wydaje się porównanie wyników z generatora oryginalnego i Isaaca na próbkach tej samej wielkości"

Oczywiście nie mam dostępu go generatora oryginalnego. Mam tylko bazę 10479 losowań podaną przez organizatora gry do publicznej wiadomości. Swoje badania porównawcze dokonuję na identycznie ilościowo bazie wygenerowanej generatorem Amadeusa. Ogólne założenie moich badań jest takie --> skoro generator Amadeusa daje zbliżone wyniki do oryginalnych po 10479 losowaniach, to wyniki te będą także zbliżone po np. 12000 losowaniach. Mając taki generator mogę przypuszczalnie sprawdzić (taki symulator) jak będą wyglądały np. skrajne czasy oczekiwania na poszczególne liczby po X losowaniach przyszłych. Dodatkowe parametry (ograniczenia) warunków generowania zestawów, miałyby tylko jeszcze bardziej przybliżyć wygenerowane zestawy do wyników rzeczywistych.
2015-02-26 (14:12)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 879 806
[ CZCIONKA MONOSPACE ]

ralfek,

Używając funkcji ISAAC_Random(isaacstate,80)+1;

Miliard losowań 10/80 mam w ciągu 5 minut.

2015-02-26 (14:14)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 808
[ CZCIONKA MONOSPACE ]

@Amadeus

Zobacz wyniki Keno.

2015-02-26 (14:14)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 879 809
[ CZCIONKA MONOSPACE ]



@sindbad,



Jak eliminujesz powstające powtórki? Zechcesz wkleić całość funkcji?

2015-02-26 (14:16)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 879 811
[ CZCIONKA MONOSPACE ]



@Ken



KENO to gra oparta o generator sprzętowy. Filozofia pasująca do gier kulkowych nie stosuje się do tej gry.

2015-02-26 (14:19)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 812
[ CZCIONKA MONOSPACE ]

Kleszek,

Rzeczywiście trudno o wyniki z oryginalnego generatora zakładając że publikowanie losowania są tylko fragmentem.

2015-02-26 (14:19)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 879 813
[ CZCIONKA MONOSPACE ]

Lecę do pracy!!





for j:=1 to 10 do

begin

repeat

x:=ISAAC_Random(isaacstate,80)+1;

until li[x]=0;

li[x]:=1;

end;

--- wpis edytowano 2015-02-26 14:20 ---

2015-02-26 (14:21)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 814
[ CZCIONKA MONOSPACE ]

>>> Filozofia pasująca do gier kulkowych nie stosuje się do tej gry.



Niekoniecznie.
2015-02-26 (14:28)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 879 815
[ CZCIONKA MONOSPACE ]

@kleszek





Podana powyżej metoda sindbada jest całkowicie poprawna i elegancka,

można zestawić ją w "wyścigu" z metodą opartą o tasowanie Fisher-Yates

z mojego GENUNIW - obie wersje skompilowane pod Lazarus - bo wciąż podejrzewam, że kompilacje spod Lazarusa będą szybsze od tych ze stareńkiego Delphi 7.



Skoro prędkość jest dla Ciebie krytyczna, używaj wariantu szybszego. GENUNIW wywołuje ISAAC+ 79 razy na każdą kombinację Multi, 48 na kombinację Lotto, itd - w algorytmie sindbada liczba wywołań będzie zmienna. To jednak nie mówi nam z góry jaka wersja będzie szybsza - niespodzianką było np. to, że po skompilowaniu w Lazarusie wersja z tasowaniem jest szybsza od tej bez tasowania - takie rzeczy dzieją się przy kompilacji



Pozdrawiam ciepło,

Amadeus





--- wpis edytowano 2015-02-26 14:35 ---

2015-02-26 (14:34)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 818
[ CZCIONKA MONOSPACE ]

A czy ktoś badał na tysiącach i milionach losowań zależność maksymalnego czasu oczekiwania od wielkości przebadanej próbki ?

Czy cały maksymalne oczekiwanie zawsze wzrasta wraz ze wzrostem wielkości próbki ?

--- wpis edytowano 2015-02-26 14:36 ---

2015-02-26 (15:11)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 824
[ CZCIONKA MONOSPACE ]

Powinno być:

Czy cały czas maksymalne oczekiwanie wzrasta wraz ze wzrostem wielkości próbki (ilości losowań)
2015-02-26 (16:04)

status kleszek
Data rejestracji: 2006-05-27
Ilość postów: 4979

2047
wpis nr 879 828
[ CZCIONKA MONOSPACE ]

Ken, zrobiłem 2 testy dla min i max czasów oczekiwania na wypadnięcie 1 liczby do 200000 losowań. Na więcej nie pozwala mi excel (" out of memory" podczas uruchamiania makra). Wyniki przedstawiam w tabelce. Wniosek jest oczywisty, im większa baza tym rekordy są większe, przy czym od pewnego momentu czas oczekiwania na wzrost wartości rekorordu znacznie się wydłuża. Przypuszczam, że przy wygenerowaniu 1000 000 zestawów maksymalny czas oczekiwania na wypadnięcie 1 liczby nie przekroczyłby raczej (strzelam) 120 losowań.



2015-02-27 (02:21)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 879 992
[ CZCIONKA MONOSPACE ]

Kleszek,



według wzoru wychodzi maks.75 ( 7losowanych w 49s)

a wyniki na testach podobne do twoich (chociaż na zwykłym randomie)

co do największych dobrze strzelasz



10000 75,67

20000 81,86

50000 84,101

100000 103,106

150000 101,108

200000 90,110

500000 98,104

1000000 102 117

2000000 103 117

5000000 123, 123

10000000 129, 129

50000000 134, 135, 150 !

--- wpis edytowano 2015-02-27 02:28 ---

2015-02-27 (12:09)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 880 048
[ CZCIONKA MONOSPACE ]



Prędkość moich generatorów wzrasta gdy usunie się z kodu

wyświetlanie licznika.



Proszę o usunięcie z kodu instrukcji "write(c,#13);" i rekompilację

po usunięciu.



Pozdrawiam ciepło,

Amadeus

2015-02-27 (16:29)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 880 100
[ CZCIONKA MONOSPACE ]

Ponieważ wyniki poprzedniego testu nie odpowiadały dokładnie założeniom

dla zależności miedzy ilością losowań a czasem maksymalnym oczekiwania

poprawiłem programik: teraz ilość początkowa jest podwajana czyli zaczynamy np. od 1000, to następne jest 2000 i następne 4000...

(sumie 15 razy) i 3 powtórzenia dla każdego zakresu





1000: 57,64,73,

2000: 73,75,75,

4000: 75,75,75,

8000: 75,82,82,

16000: 82,82,82,

32000: 82,84,84,

64000: 92,92,92,

128000: 97,97,97,

256000: 97,97,97,

512000: 113,113,113,

1024000: 113,113,113,

2048000: 113,114,120,

4096000: 120,120,120,

8192000: 120,120,120,

16384000: 120,120,128,

Czas wykonania 1min





1000: 53,68,68,

2000: 68,70,93,

4000: 93,93,93,

8000: 93,93,93,

16000: 93,93,93,

32000: 99,99,99,

64000: 99,99,99,

128000: 99,99,99,

256000: 99,101,101,

512000: 102,102,104,

1024000: 108,109,109,

2048000: 118,118,118,

4096000: 118,118,118,

8192000: 118,118,122,

16384000: 129,129,129,

Czas wykonania 1min



dla 7 liczb z 49 i 10 testów dla każdego zakresu:



1000: 59,59,64,64,64,64,64,64,64,68,

2000: 68,68,68,68,74,74,74,74,74,74,

4000: 74,74,74,77,77,85,85,85,85,85,

8000: 85,85,109,109,109,109,109,109,109,109,

16000: 109,109,109,109,109,109,109,109,109,109,

32000: 109,109,109,109,109,109,109,109,109,109,

64000: 109,109,109,109,109,109,109,109,109,109,

128000: 109,109,109,109,109,109,109,109,109,109,

256000: 109,109,109,109,109,109,109,109,109,109,

512000: 109,115,115,115,115,115,115,115,115,115,

1024000: 115,115,115,115,120,120,120,120,120,120,

2048000: 120,120,120,120,120,120,120,127,127,127,

4096000: 127,127,127,127,127,127,134,134,134,134,

8192000: 134,134,135,135,135,150,150,150,150,150,

16384000: 150,150,150,150,150,150,150,150,150,150,

Czas wykonania 3min







i dla 7 kolorów dla 49s po 10 testów na każdy zakres losowań



1000: 39,43,43,59,59,59,59,59,59,59,

2000: 59,59,59,64,73,73,73,73,73,73,

4000: 73,73,73,73,73,73,73,73,73,73,

8000: 73,73,73,73,73,73,73,73,73,75,

16000: 75,75,75,75,75,75,75,80,80,80,

32000: 80,80,80,80,80,80,80,80,80,102,

64000: 102,102,109,109,109,109,109,109,109,109,

128000: 109,109,109,109,109,109,109,109,109,109,

256000: 109,109,109,109,109,109,109,109,109,109,

512000: 109,109,109,109,109,109,109,109,109,109,

1024000: 109,109,109,109,109,111,111,111,111,111,

2048000: 111,111,111,111,112,112,112,112,112,112,

4096000: 119,119,119,119,119,119,119,119,119,119,

8192000: 119,119,119,119,119,119,119,119,119,119,

16384000: 119,119,119,122,122,122,122,122,127,127,

Czas wykonania 1min



W kolorach ont jest jednak mniejsze mimo tego samego P.



2015-02-27 (16:34)

status Amadeus
Data rejestracji: 2009-04-30
Ilość postów: 820

4541
wpis nr 880 101
[ CZCIONKA MONOSPACE ]

Czy są osoby zainteresowane programem implementującym funkcję arbitralnego równomiernego klastrowania kombinacji gry Lotto?



Funkcja przyjmuje na wejście kombinację Lotto lub jej kod CSN, oraz ilość żądanych klastrów (podziałów). Po otrzymaniu tych parametrów zwraca na wyjściu numer klastru do jakiego zostanie przypisana wejściowa kombinacja.



Funkcja jest deterministyczna: Dla tego samego zestawu parametrów (kombinacja plus liczba klastrów) zwraca zawsze ten sam numer klastru. Zapewnia dobrą dyfuzję: kolejne kody CSN/kombinacje będą równomiernie "rozrzucone" po całym zakresie klastrów (charakterystyka pseudolosowa).



Funkcja gwarantuje, że dystrybucja kombinacji pomiędzy zbliżone ilości klastrów (np. 10000 i 10001) będzie zupełnie inna.



Funkcja oparta jest o hybrydowy generator pseudolosowy (LCG+LFSR) dla którego wejściowe parametry (CSN i ilość klastrów) stają się wartością inicjującą.



Zakres ilości klastrów: od 2 do 65535.



Pozdrawiam ciepło,

Amadeus

--- wpis edytowano 2015-02-27 16:48 ---

2015-02-27 (16:40)

status Ken
Data rejestracji: 2012-09-01
Ilość postów: 2921

13557
wpis nr 880 104
[ CZCIONKA MONOSPACE ]

Ciekawie też wygląda test od 10 losowań ( dla 1 liczby z 7/49)



10: 10,10,10,10,10,10,10,10,10,10,

20: 14,17,17,17,17,17,17,18,18,18,

40: 33,33,33,33,33,33,33,33,33,33,

80: 46,46,46,46,46,46,46,46,46,46,

160: 67,67,67,67,67,67,67,67,67,67,

320: 68,68,68,68,68,70,70,70,70,70,

640: 70,70,70,70,70,70,78,78,78,78,

1280: 78,78,78,78,78,78,78,78,78,78,

2560: 78,78,78,78,78,78,78,78,80,80,

5120: 80,84,84,84,84,86,86,86,86,86,

10240: 86,86,86,86,108,108,108,108,108,108,

20480: 108,108,108,108,108,108,108,108,108,108,

40960: 108,108,108,108,108,108,108,108,108,108,

81920: 108,108,116,116,116,116,116,116,116,116,

163840: 116,116,116,116,116,116,116,116,116,116,

Czas wykonania 0min

| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 22 23 24 ... 41 42
Wyślij wiadomość do admina