- 
 11. Data: 2017-11-29 07:00:27
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: Adam Klobukowski <a...@g...com>
 W dniu środa, 29 listopada 2017 04:53:41 UTC+1 użytkownik s...@g...com napisał: 
 > > Musi to być w miarę proste i szybkie (implementacja bedzie w asemblerze).
 >
 > Skoro jesteśmy już przy Asemblerze, to może... użyj sprzętowego generatora
 > liczb pseudolosowych. Intel kiedyś (jakieś 15+ lat temu) się chwalił, że
 > używa szumu termicznego i nasłuchiwania na magistral (nie wiem jakich) i z
 > tego dostaje się wartości które są super przypadkowe. Myślę, że do dzisiaj
 > AMD też opanowało tą technologię, tak, że nie jest to rozwiązanie jedynie
 > intelowskie. Myślę, że jest to jakieś urządzenie pod jakimś adresem pamięci,
 > tak, że wystarczy to odczytać 1 instrukcją i już masz dobrą wartość
 > pseudolosową...
 
 Nic nie pisałem że w asemblerze x86. Więc napiszę: nie w asemblerze x86.
 
 AdamK
 
- 
 12. Data: 2017-11-29 07:55:20
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: "Radoslaw Szwed" <r...@p...fm>
 Użytkownik "Adam Klobukowski" <a...@g...com> napisał w wiadomości 
 news:b7e9c7d1-798a-4a0b-8167-a214ebcce75d@googlegrou
 ps.com...
 > > > Liczb bede generowal ok. 1000000. Zakres 0-44 jest podany tylko
 > > przykladowo=
 > > > i podczas generacji kolejnych bedzie się zmieniał. Musi to by?=
 > > > ? w miarę proste i szybkie (implementacja bedzie w asemblerze).
 > >
 > >
 > > Primo, dlaczego w Asemblerze? Secundo, tego rodzaju kawałki ogólnie
 > > są proste, nie ma różnicy czy będzie trochę więcej jakichś add czy
 > > mul
 >
 > Takie widzimisie.
 
 Poniżej generator pseudolosowy oparty na algorytmie Parka-Millera
 Gdyby procedura była za wolna użyj koprocesora.
 
 proc Losowe
 ; Generator pseudolosowy Park-Miller [0..eax-1]
 ; Wejście :eax
 ; Wyjście :eax
 
 mov ebx, eax
 mov eax, [ziarno]
 xor edx, edx
 mov ecx, 127773
 div ecx
 mov ecx, eax
 mov eax, 16807
 mul edx
 mov edx, ecx
 mov ecx, eax
 mov eax, 2836
 mul edx
 sub ecx, eax
 xor edx, edx
 mov eax, ecx
 mov [ziarno], ecx
 div ebx
 mov eax, edx
 ret
 endp
 
 ziarno dd 2037280626
 
 
- 
 13. Data: 2017-11-29 09:41:25
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: "M.M." <m...@g...com>
 On Tuesday, November 28, 2017 at 2:50:58 PM UTC+1, s...@g...com wrote: 
 > W dniu wtorek, 28 listopada 2017 09:48:28 UTC+1 użytkownik Adam Klobukowski
 napisał:
 > > Poszukuję prostego (szybkiego) generatora pseudolosowego liczb 8bitowych z górnym
 limitem, tj. jak bym chciał sobie wylosować liczbę z zakresu 0-44. Możecie coś
 polecić?
 >
 > Możecie! A czy Wy czytacie jedyną gazetę programistyczną w Polsze?!?
 > Rozwiązanie jest na stronie 21 nr 9/2017:
 >
 > #include <random>
 > #include <iostream>
 > [...]
 >
 > std::random_device device;
 > std::mt19937 egine{device()};
 > std::uniform_int_distribution<> dist(0, 44);
 >
 > std::cout << dist(engine) << '\n';
 >
 > Jest to C++11 i gwarantuje rozkład normalny otrzymywanych liczb...
 
 Jeśli ktoś pyta o szybki generator liczb losowych, to rozumiem, że
 bardzo dobrze zna mt i szuka czegoś szybszego, być może kosztem
 jakości generowanych liczb. Ale jeśli szybkość mt wystarcza... to
 pewnie, należy użyć mt.
 
 
 
- 
 14. Data: 2017-11-29 09:41:41
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: slawek <f...@f...com>
 On Wed, 29 Nov 2017 01:20:36 +0100, "AK" <n...@n...net> wrote: 
 > PS: W "moich czasach" standard to byla ksiazka Zielinski
 ""Generatory liczb pseudolosowych"
 > czy jakos tak.
 
 Z rzeczy praktycznych Numerical Recipes mają rozdział o generatorach
 liczb losowych.
 
- 
 15. Data: 2017-11-29 09:44:49
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: slawek <f...@f...com>
 On Tue, 28 Nov 2017 19:53:39 -0800 (PST), s...@g...com wrote: 
 > Skoro jesteśmy już przy Asemblerze, to może... użyj spr=
 > zętowego generatora liczb pseudolosowych. Intel kiedyś (jakie?=
 > ? 15+ lat temu) się chwalił, że używa szumu termiczne=
 > go i nasłuchiwania na magistral (nie wiem jakich) i z tego dostaje
 si=
 > ę wartości które są super przypadkowe. Myślę,=
 
 
 Syf w tym że to nie działało na sprzęcie kupowanym poza USA.
 
 Dziś można kupić "pendrive" z takim generatorem lub zrobić sobie
 samemu na MCU.
 
- 
 16. Data: 2017-11-29 09:48:54
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: "M.M." <m...@g...com>
 On Wednesday, November 29, 2017 at 1:21:03 AM UTC+1, AK wrote: 
 > Użytkownik "M.M." <m...@g...com> napisał:
 >
 > > Za punkt wyjścia bym wziął liniowy lub fibonacciego, potem bym szukał
 > > czy jest jakaś sztuczka na modulo 45... a może kompilator zna odpowiednią
 > > sztuczkę?
 >
 > A po cholere jakies sztuczki?
 Bo chciałeś szybko a OGÓLNY algorytm modulo jest wolny. Algorytm dla
 konkretnej wartości (np. modulo 45) czasami jest dużo szybszy - w sumie
 myślałem, że to jest oczywiste dla Ciebie.
 
 
 
 > Majac generator o rozkladzie jednostajnym (czyli <0, 1) ) przez
 > proste skalowanie otrzymuje
 > sie generator w potrzebnym przedziale.
 Obawiam się, że generator zaimplementowany na liczbach zmiennoprzecinkowych
 nie będzie szybki, a tu jeszcze jedno mnożenie na skalowanie...
 
 
 > Generalnie na podstawie generatora jednostajnego droga
 > obliczania odwrotnej dystrubuanty
 > mozna otrzymac generator o innym rockladzie niz jednostajny.
 To wszystko prawda, ale do czego pijesz?
 
 
 
 > PS: W "moich czasach" standard to byla ksiazka Zielinski ""Generatory
 > liczb pseudolosowych"
 > czy jakos tak.
 No tak, ale znowu pytanie, co z tego? Tam są ogólne i znane generatory
 liczb losowych, nie znajdziesz w tej książeczce specjalistycznego, z
 podniesioną wydajnością np. kosztem jakości albo dzięki implementacji
 wykorzystującej specyficzne cechy nowych procesorów.
 
 Pozdrawiam
 
- 
 17. Data: 2017-11-29 10:19:08
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: slawek <f...@f...com>
 On Wed, 29 Nov 2017 00:48:54 -0800 (PST), "M.M." <m...@g...com> 
 wrote:
 > liczb losowych, nie znajdziesz w tej książeczce specjalistycznego=
 > , z
 > podniesioną wydajnością np. kosztem jakości albo dzi?=
 > ?ki implementacji
 > wykorzystującej specyficzne cechy nowych procesorów.
 
 
 Złe nastawienie.
 
 Czytałeś? Czy tylko tak ci się wydaje? Jak nie czytałeś to przeczytaj
 - głupszy od tego nie będziesz.
 
 Przeczytaj rozdział o generatorach w Numerical Recipes, obejrzyj
 sobie jak jest napisany generator w jakiejś bibliotece Open Source,
 np. GSL czy Scipy, ew. CERNLIB. Dogłębnie poznaj czym jest "Mersenne
 Twister".
 
 Ale przede wszystkim określ czym dla ciebie są liczby losowe.
 Poszukaj pakietu "Die hard" do testowania liczb losowych. Wymyśl swój
 generator. Puść przez testy. Spróbuj uzasadnić matematycznie że twój
 generator to akurat to co ci potrzebne.
 
 Jeżeli twój hardware na to pozwala to dolutuj hardwareowy generator.
 Uwaga: odczyt z wiszącego pinu NIE daje liczby losowej.
 
 Co do asemblera: zwykle program w C jest równie dobry jak asembler.
 Chyba że nie jest. Ale aby tak było musisz znać asembler w stopniu
 przy którym nie ma znaczenia czy w asemblerze napiszesz 20 linijek
 czy 100.
 
 I najważniejsze: napisz sobie na tekturce odpowiedź na proste pytanie
 - DLACZEGO STANDARDOWY GENERATOR LICZB LOSOWYCH JEST ABSOLUTNIE NIE
 DO PRZYJĘCIA?
 
- 
 18. Data: 2017-11-29 11:23:29
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: "M.M." <m...@g...com>
 On Wednesday, November 29, 2017 at 10:19:11 AM UTC+1, slawek wrote: 
 > On Wed, 29 Nov 2017 00:48:54 -0800 (PST), "M.M." <m...@g...com>
 > wrote:
 > > liczb losowych, nie znajdziesz w tej książeczce specjalistycznego=
 > > , z
 > > podniesioną wydajnością np. kosztem jakości albo dzi?=
 > > ?ki implementacji
 > > wykorzystującej specyficzne cechy nowych procesorów.
 >
 >
 > Złe nastawienie.
 Ale czyje? Moje nastawienie? A jakie masz wyobrażenie o moim
 nastawieniu, poprawnie zdekodowałeś moje nastawienie?
 
 
 > Czytałeś? Czy tylko tak ci się wydaje? Jak nie czytałeś to przeczytaj
 > - głupszy od tego nie będziesz.
 Ale co czytałem i co mi się wydaje? A głupszy może będę od tego, bo
 czas nie jest z gumy i nie będę mógł w tym czasie robić czegoś innego.
 
 
 
 > Przeczytaj rozdział o generatorach w Numerical Recipes, obejrzyj
 > sobie jak jest napisany generator w jakiejś bibliotece Open Source,
 > np. GSL czy Scipy, ew. CERNLIB. Dogłębnie poznaj czym jest "Mersenne
 > Twister".
 Dlaczego mam to czytać i dogłębniej poznawać?
 
 
 
 > Ale przede wszystkim określ czym dla ciebie są liczby losowe.
 Chyba zwracasz się do osoby zakładającej wątek :)
 
 
 
 > Poszukaj pakietu "Die hard" do testowania liczb losowych. Wymyśl swój
 > generator. Puść przez testy. Spróbuj uzasadnić matematycznie że twój
 > generator to akurat to co ci potrzebne.
 Kiedyś to robiłem, testowałem różne odmiany generatorów fibonacciego.
 Moje wnioski są takie: generatory fibonacciego są dużo szybsze od
 ranluxa, i (dobrze sparametryzowane) zazwyczaj przechodzą testy tak
 samo dobrze ranlux, chociaż g. f. mogą wymagać dłuższej inicjalizacji i
 większej ilości pamięci. Tyle że ta rozmowa chyba była o czymś
 całkiem innym. Chcesz zmienić temat na generatory fibonnaciego?
 Chętnie poczytam taki wątek, a może i coś napiszę.
 
 
 > Jeżeli twój hardware na to pozwala to dolutuj hardwareowy generator.
 > Uwaga: odczyt z wiszącego pinu NIE daje liczby losowej.
 To już totalnie odlecieliśmy, moim zdaniem daje liczbę losową, ale
 rozkład jest baaaardzo nierównomierny.
 
 
 
 > Co do asemblera: zwykle program w C jest równie dobry jak asembler.
 Ja też mówię że zwykły C jest równie dobry jak asm, o ile w C można
 optymalnie wykorzystać specyficzne cechy sprzętu.
 
 
 > Chyba że nie jest. Ale aby tak było musisz znać asembler w stopniu
 > przy którym nie ma znaczenia czy w asemblerze napiszesz 20 linijek
 > czy 100.
 No pewnie.
 
 
 
 > I najważniejsze: napisz sobie na tekturce odpowiedź na proste pytanie
 > - DLACZEGO STANDARDOWY GENERATOR LICZB LOSOWYCH JEST ABSOLUTNIE NIE
 > DO PRZYJĘCIA?
 Ja zrozumiałem tak: ponieważ działa za wolno i być może za dobrze.
 Mnie w 99% zastosowań wystarcza generator liniowy lub mersen lub
 ranlux lub fibonnaci.
 
 Pozdrawiam
 
- 
 19. Data: 2017-11-29 14:01:41
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: slawek <f...@f...com>
 On Wed, 29 Nov 2017 02:23:29 -0800 (PST), "M.M." <m...@g...com> 
 wrote:
 > Ale czyje? Moje nastawienie? A jakie masz wyobrażenie o moim
 > nastawieniu, poprawnie zdekodowałeś moje nastawienie?
 
 Domagasz się pomocy, a nawet nie zdefiniowałeś dokładnie problemu.
 Chcesz pisać w Asemblerze, ale nie chcesz się przepracować. Chcesz
 pomocy, ale nie piszesz o jaki CPU chodzi (tyle że to nie x86).
 
 Chcesz pisać swój własny generator. Ale nie masz narzędzi do jego
 testowania. Chcesz szybko i byle jak, ale nie masz pojęcia jak i jak
 zacząć. No i fajnie.
 
 A książek nie będziesz czytać bo nie. Też zupełnie gites.
 
- 
 20. Data: 2017-11-29 14:04:25
 Temat: Re: Prosty generator pseudolosowy 8bit z limitem
 Od: slawek <f...@f...com>
 On Wed, 29 Nov 2017 02:23:29 -0800 (PST), "M.M." <m...@g...com> 
 wrote:
 > To już totalnie odlecieliśmy, moim zdaniem daje liczbę losow=
 > ą, ale
 > rozkład jest baaaardzo nierównomierny.
 
 
 Twoje zdanie, twoja sprawa. Ale... są konkretne wyniki, ludzie
 napisali i opublikowali.
 


 do góry
 do góry![Jak reklamować ośrodek wypoczynkowy lub hotel? [© kadmy - fotolia.com] Jak reklamować ośrodek wypoczynkowy lub hotel?](https://s3.egospodarka.pl/grafika2/reklama-internetowa/Jak-reklamowac-osrodek-wypoczynkowy-lub-hotel-221435-150x100crop.jpg) 
![Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych we wrześniu 2025 [© freepik] Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych we wrześniu 2025](https://s3.egospodarka.pl/grafika2/najlepsze-lokaty/Ranking-lokat-i-kont-oszczednosciowych-Przeglad-mozliwosci-dostepnych-we-wrzesniu-2025-268649-150x100crop.jpg) 
![Ranking kantorów internetowych. Gdzie najlepsze kursy walut? [© Pavel Bobrovskiy - Fotolia.com] Ranking kantorów internetowych. Gdzie najlepsze kursy walut?](https://s3.egospodarka.pl/grafika2/kantory-internetowe/Ranking-kantorow-internetowych-Gdzie-najlepsze-kursy-walut-218154-150x100crop.jpg) 
![Podatek od wynajmu mieszkania 2023 - jakie stawki i formy opodatkowania? [© Africa Studio - Fotolia.com] Podatek od wynajmu mieszkania 2023 - jakie stawki i formy opodatkowania?](https://s3.egospodarka.pl/grafika2/wynajem-mieszkania/Podatek-od-wynajmu-mieszkania-2023-jakie-stawki-i-formy-opodatkowania-249032-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


