jak na 8051 zrobić losowanie liczby bez timerów
Masz problem? Zapytaj na forum elektroda.pl
From: "Pablo_C" <pch[ciach]_at_nospam_poczta.onet.pl>
Subject: jak na 8051 zrobić losowanie liczby bez timerów
Date: Sat, 17 Apr 2004 21:31:58 +0200
jak sensownie zrobić losowanie w ramach liczby jedno bajtowej ale bez użycia
timera? będę wdzięczny za sugestie.
pozdrawiam
PC
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.ceti.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Leszek Wieczorek" <l.wieczorek_at_nospam_xl.wp.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Sat, 17 Apr 2004 22:16:13 +0200
Przecież masz w Bascomie funkcię RND
Przykład:
Dim I As Integer
Do
I = Rnd(100) 'zwraca liczbę pseudolosową z zakresu 0-99
Print I
Wait 1
Loop
End
Jakie znaczenie mają timery przy funkcji losowania?
Nie widzę żadnego związku
Leszek Wieczorek
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Zbino" <zew"smieciwon_at_nospam_smieciwon"poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_jak_na_8051_zrobi=E6_losowanie_liczby_bez_timer=F3w?=
Date: Sat, 17 Apr 2004 22:18:01 +0200
Użytkownik "Pablo_C" <pch[ciach]_at_nospam_poczta.onet.pl> napisał w wiadomości
news:c5s0ve$50c$1_at_nospam_atlantis.news.tpi.pl...
jak sensownie zrobić losowanie w ramach liczby jedno bajtowej ale bez
użycia
timera? będę wdzięczny za sugestie.
widziałem wielokrotnie w sieci przykłady na generator liczb pseudolosowych.
Raptem parę linijek tekstu. Niestety nie pamiętam linka. Może na
www.8052.com ?
zby
========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news.nask.pl!news.astercity.net!news.aster.pl!not-for-mai
From: Adam Dybkowski <adybkows_at_nospam_amwaw.edu.pl>
Subject: Re: jak na 8051 =?ISO-8859-2?Q?zrobi=E6_losowanie_liczby_b?=
Date: Sat, 17 Apr 2004 23:27:20 +0200
Pablo_C wrote:
jak sensownie zrobić losowanie w ramach liczby jedno bajtowej ale bez użycia
timera? będę wdzięczny za sugestie.
Najlepszy rozklad szumu i parametry stochastyczne szumu uzyskasz ze
sprzetowego generatora ciagu losowego (RBG - Random Bit Generator).
Podlaczasz go do dowolnej nogi procka, taktujesz transmisje z innego
pinu i czytasz stan RBG - na wyjsciu daje '0' albo '1', calkiem losowo
(a nie pseudolosowo).
--
Adam Dybkowski
adybkows_at_nospam_amwaw.edu.pl
http://www.amwaw.edu.pl/~adybkows/
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mai
From: "Q" <oink_at_nospam_gazeta.gov.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Sun, 18 Apr 2004 04:06:43 +0200
Podlaczasz go do dowolnej nogi procka, taktujesz transmisje z innego
pinu i czytasz stan RBG - na wyjsciu daje '0' albo '1', calkiem losowo
(a nie pseudolosowo).
nie robie sobie jaj teraz:
- czym sie rozni losowy od pseudolosowego?
========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news.nask.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_spamer.die.die.die.piranet.org>
Subject: Re: jak na 8051 =?ISO-8859-2?Q?zrobi=E6?= losowanie liczby bez =?ISO-8859-2?Q?timer=F3w?=
Date: Sun, 18 Apr 2004 03:05:28 +0000 (UTC)
Q <oink_at_nospam_gazeta.gov.pl> wrote:
Podlaczasz go do dowolnej nogi procka, taktujesz transmisje z innego
pinu i czytasz stan RBG - na wyjsciu daje '0' albo '1', calkiem losowo
(a nie pseudolosowo).
nie robie sobie jaj teraz:
- czym sie rozni losowy od pseudolosowego?
Ciag losowy i pseudolosowy wygladaja mniej lub bardziej podobnie jedynie
pod katem statystyki. W przypadku ciagu pseudolosowego, znajac algorytm
oraz stan wewnetrzny generatora mozna w prosty sposob obliczyc wartosc
nastepna. W wiekszosci prostych generatorow stan wewnetrzny jest albo
dostepny na wyjsciu, albo latwo jest go wyznaczyc. Znajac stan wewnetrzny
mozna tez z latwoscia wyznaczyc wartosc wyjsciowa. Tak wiec znajomosc
algorytmu i stanu generatora jest tozsama ze znajomoscia wszystkich
wartosci wygenerowanych w przyszlosci.
Kolejna cecha generatorow pseudolosowych, dyskwalifikujacych je w
zastosowaniach wymagajacych malej przewidywalnosci, jest powtarzalnosc.
Stan takiego generatora, przy poprawnym wyborze przeksztalcenia, powroci do
wartosci poczatkowej po max. 2^k krokach (gdzie k jest dlugoscia slowa
stanu w bitach). Oczywiscie bardzo prawdopodobne jest ze przy nieuwaznym
doborze przeksztalcenia i wartosci poczatkowej cykl zamknie sie znacznie
szybciej. W przypadkach patologicznych nawet po kilku, niezaleznie od
dlugosci slowa stanu.
Dla wiekszosci generatorow PRNG dostepnych w bibliotekach funkcji
standardowich dostarczanych z kompilatorami czy z systemem, latwo jest
wyznaczyc kolejne wartosci ciagu nawet nie wiedzac nic o konstrukcji
generatora. Dosc pouczajacym doswiadczeniem jest rysowanie na ekranie
punktow o wspolrzednych x,y bedacych kolejnymi wyrazami naszego ciagu
"losowego". Dosc szybko mozna zauwazyc ze ukladaja sie one w wyrazne
wzorki.
Jesli zainteresowal Cie problem i chcialbys poczytac sobie o metodach
badania generatorow, na poczatek mozesz zerknac sobie na
http://ece.gmu.edu/courses/ECE636/viewgraphs_S04/lecture6 stream_ciphers3.pdf
pzdr.
j.
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mai
From: "Q" <oink_at_nospam_gazeta.gov.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Sun, 18 Apr 2004 13:25:32 +0200
Dosc pouczajacym doswiadczeniem jest rysowanie na ekranie
punktow o wspolrzednych x,y bedacych kolejnymi wyrazami naszego ciagu
"losowego". Dosc szybko mozna zauwazyc ze ukladaja sie one w wyrazne
wzorki.
dzieki;
/wlasnie sobie przypomnialem, ze kiedys zrobilem sobie taki wykresik;
bylo tam wyrazne skorelowanie, ktorego nie zakumalem...
Jesli zainteresowal Cie problem i chcialbys poczytac sobie o metodach
badania generatorow, na poczatek mozesz zerknac sobie na
http://ece.gmu.edu/courses/ECE636/viewgraphs_S04/lecture6 stream_ciphers3.pdf
pewnie, ze tak :)
jeszcze raz dzieki :)
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Sun, 18 Apr 2004 14:33:18 +0200
On Sun, 18 Apr 2004 03:05:28 +0000 (UTC), Jacek R. Radzikowski wrote:
Q <oink_at_nospam_gazeta.gov.pl> wrote:
Podlaczasz go do dowolnej nogi procka, taktujesz transmisje z innego
pinu i czytasz stan RBG - na wyjsciu daje '0' albo '1', calkiem losowo
(a nie pseudolosowo).
nie robie sobie jaj teraz:
- czym sie rozni losowy od pseudolosowego?
Ciag losowy i pseudolosowy wygladaja mniej lub bardziej podobnie jedynie
pod katem statystyki.
Ciag losowy jest losowy, pseudolowy jedynie tak wyglada :-)
Masz racje - istotny jest cykl. Pseudolowy go posiada.
Z czym sie wiaze problem jego inicjacji - po resecie wystartuje znow
od jakiejs wartosci, tu sie przydaje jakies w miare losowe zdarzenie -
np uruchamiamy licznik zliczajacy 10MHz i czekamy az czlowiek nacisnie
przycisk.
Pomysl ze zliczaniem innych zdarzen dobry jest, ale z procka to nadal
jest pseudolosowo. Tu sie uzywa jakiegos szumiacego polprzewodnika -
wtedy mamy cos losowego.
W przypadku ciagu pseudolosowego, znajac algorytm
oraz stan wewnetrzny generatora mozna w prosty sposob obliczyc wartosc
nastepna. W wiekszosci prostych generatorow stan wewnetrzny jest albo
dostepny na wyjsciu, albo latwo jest go wyznaczyc. Znajac stan wewnetrzny
mozna tez z latwoscia wyznaczyc wartosc wyjsciowa. Tak wiec znajomosc
algorytmu i stanu generatora jest tozsama ze znajomoscia wszystkich
wartosci wygenerowanych w przyszlosci.
No coz - to jest algorytm.
Ale latwo powiedziec - wyznacz nastepna wartosc na podstawie ciagu
poprzednich wartosci bez znania stanu wewnetrznego.
Kolejna cecha generatorow pseudolosowych, dyskwalifikujacych je w
zastosowaniach wymagajacych malej przewidywalnosci, jest powtarzalnosc.
Dla wielu zastosowan nie ma wiekszego znaczenia. Jesli generator
ma stan 32 bit, czy nawet 16 bit, to moze byc wystarczajace.
Wazniejsza jest "losowosc".
Mierny generatorek ze spectrum
S=((S+1)*75) mod 65537 - 1
S jest 16 bit.
J.
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!news.nask.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_spamer.die.die.die.piranet.org>
Subject: Re: jak na 8051 =?ISO-8859-2?Q?zrobi=E6?= losowanie liczby bez =?ISO-8859-2?Q?timer=F3w?=
Date: Sun, 18 Apr 2004 19:10:40 +0000 (UTC)
J.F. <jfox_nospam_at_nospam_poczta.onet.pl> wrote:
On Sun, 18 Apr 2004 03:05:28 +0000 (UTC), Jacek R. Radzikowski wrote:
Ciag losowy i pseudolosowy wygladaja mniej lub bardziej podobnie jedynie
pod katem statystyki.
Ciag losowy jest losowy, pseudolowy jedynie tak wyglada :-)
Masz racje - istotny jest cykl. Pseudolowy go posiada.
Nie tylko. Najwazniejsza chyba cecha jest deterministycznosc ciagu
pseudolosowego. Z generatorow zainicjowanych takimi samymi wartosciami
otrzymasz identyczne ciagi liczb.
Czasami jest to porzadane (symulacje), ale czasami moze niezle
namieszac.
Z czym sie wiaze problem jego inicjacji - po resecie wystartuje znow
od jakiejs wartosci, tu sie przydaje jakies w miare losowe zdarzenie -
np uruchamiamy licznik zliczajacy 10MHz i czekamy az czlowiek nacisnie
przycisk.
Mozna. Pozostaje kestia rozkladu. Jedne z najlepszych generatorow
PRNG obecnie konstruuje sie bazujac na dobrych przeksztalceniach
kryptograficznych (szyfry, funkcje jednokierunkowe)
Pomysl ze zliczaniem innych zdarzen dobry jest, ale z procka to nadal
jest pseudolosowo. Tu sie uzywa jakiegos szumiacego polprzewodnika -
wtedy mamy cos losowego.
zliczanie zdarzen moze dac bardzo nieladny rozklad. Wystarczy ze
wmiesza sie jakis sygnal okresowy. Szum polprzewodnikow tez jest iirc
niezle "podbarwiony".
Linuksowe urzadzenie /dev/random wykorzystuje zdarzenia systemowe do
"kolekcjonowania" entropii. Losowosc generowanych liczb jest calkiem
niezla, ale nie uzyskasz ich zbyt wiele: od kilku na sekunde do jednej
na kilka sekund, w zaleznosci od poziomu aktywnosci systemu.
W przypadku ciagu pseudolosowego, znajac algorytm
oraz stan wewnetrzny generatora mozna w prosty sposob obliczyc wartosc
nastepna. W wiekszosci prostych generatorow stan wewnetrzny jest albo
dostepny na wyjsciu, albo latwo jest go wyznaczyc. Znajac stan wewnetrzny
mozna tez z latwoscia wyznaczyc wartosc wyjsciowa. Tak wiec znajomosc
algorytmu i stanu generatora jest tozsama ze znajomoscia wszystkich
wartosci wygenerowanych w przyszlosci.
No coz - to jest algorytm.
Ale latwo powiedziec - wyznacz nastepna wartosc na podstawie ciagu
poprzednich wartosci bez znania stanu wewnetrznego.
Dla generatorow kongruentnych nie jest to niewykonalne. Rejestr LFSR
mozna odtworzyc z olowkiem i kartka (odpowiedniej dlugosci;)) w reku
algorytmem Berlekampa-Masseya.
Nawet jesli algorytm nie jest latwy do zlamania, generacja ziarna moze
byc trywialna do odtworzenia (jak we wczesnych wersjach netscape)
Kolejna cecha generatorow pseudolosowych, dyskwalifikujacych je w
zastosowaniach wymagajacych malej przewidywalnosci, jest powtarzalnosc.
Dla wielu zastosowan nie ma wiekszego znaczenia. Jesli generator
ma stan 32 bit, czy nawet 16 bit, to moze byc wystarczajace.
Wazniejsza jest "losowosc".
Nie licz na to ze uzykasz cykl o maksymalnej dlugosci dla losowo
wybranego przeksztalcenia. Nad dobrym wyborem trzeba sie troche
napocic.
Mierny generatorek ze spectrum
S=((S+1)*75) mod 65537 - 1
S jest 16 bit.
Ech... na tej maszynie po raz pierwszy sie przekonalem jak bardzo moga
byc skorelowane liczby z generatora PRNG :)
pzdr.
j.
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.astercity.net!news.aster.pl!not-for-mai
From: Adam Dybkowski <adybkows_at_nospam_amwaw.edu.pl>
Subject: Re: jak na 8051 =?ISO-8859-2?Q?zrobi=E6_losowanie_liczby_b?=
Date: Sun, 18 Apr 2004 20:20:06 +0200
Q wrote:
Podlaczasz go do dowolnej nogi procka, taktujesz transmisje z innego
pinu i czytasz stan RBG - na wyjsciu daje '0' albo '1', calkiem losowo
(a nie pseudolosowo).
nie robie sobie jaj teraz:
- czym sie rozni losowy od pseudolosowego?
Generator losowy opiera sie nie na obliczeniach, ale na procesach
fizycznych, np. szumieniu diody. Wystarczy szum takiej diody wzmocnic,
odpowiednio przyciac komparatorem i juz mamy generator szumu losowego. A
nie jakiegos pseudoszumu powtarzalnego po pewnym czasie.
--
Adam Dybkowski
adybkows_at_nospam_amwaw.edu.pl
http://www.amwaw.edu.pl/~adybkows/
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.ceti.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Pablo_C" <pch[ciach]_at_nospam_poczta.onet.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Sun, 18 Apr 2004 20:55:48 +0200
ja potrzebuje wylosowac cos, cokolwiek i nie musi to byc liczba strikte
losowa. chce to zrobic bardzo prosto i zastanawiam sie czy nie moge po
prostu odczytac zawartosci jakichs rejestrów bo tak na chlopski rozum w
danej chwili czyli tej co bede losowal trudno przewidziec co w nich bedzie.
np znacznik stosu i jeszcze jakis rejestr portu czy inny. jezeli sie myle to
prosze mnie sprostowac.
pozdrawiam
PC
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Mon, 19 Apr 2004 01:36:07 +0200
On Sun, 18 Apr 2004 20:55:48 +0200, "Pablo_C"
ja potrzebuje wylosowac cos, cokolwiek i nie musi to byc liczba strikte
losowa. chce to zrobic bardzo prosto i zastanawiam sie czy nie moge po
prostu odczytac zawartosci jakichs rejestrów bo tak na chlopski rozum w
danej chwili czyli tej co bede losowal trudno przewidziec co w nich bedzie.
np znacznik stosu i jeszcze jakis rejestr portu czy inny. jezeli sie myle to
prosze mnie sprostowac.
Wskaznik stosu jest praktycznie staly - jesli go bedziesz odczytywal
tylko w jednym kontekscie programu to bedzie dokladnie staly.
Na portach pojawia sie to co z zewnatrz jest zadawane - trudno sie
tam spodziewac wiekszych zmian o ile nie podlaczysz czegos z zewnatrz
[licznik taktowany osobnym generatorem z 10MHz].
Pozostaja liczniki '51 - ale musisz jeszcze miec jakis niezalezne
zewnetrzne zrodlo zdarzen - bo inaczej nici z losowosci.
J.
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "rwi" <wiewiorowski_at_nospam_poczta.onet.pl>
Subject: Re: jak na 8051 zrobić losowanie liczby bez timerów
Date: Mon, 19 Apr 2004 01:40:07 +0200
Pozostaja liczniki '51 - ale musisz jeszcze miec jakis niezalezne
zewnetrzne zrodlo zdarzen - bo inaczej nici z losowosci.
Ja proponuje probkowac jakis prosty generator szumu bialego :)
Robert
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Zbino" <zew"smieciwon_at_nospam_smieciwon"poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_jak_na_8051_zrobi=E6_losowanie_liczby_bez_timer=F3w?=
Date: Mon, 19 Apr 2004 21:10:12 +0200
Użytkownik "rwi" <wiewiorowski_at_nospam_poczta.onet.pl> napisał w wiadomości
news:c5v3v8$euf$1_at_nospam_nemesis.news.tpi.pl...
Pozostaja liczniki '51 - ale musisz jeszcze miec jakis niezalezne
zewnetrzne zrodlo zdarzen - bo inaczej nici z losowosci.
Ja proponuje probkowac jakis prosty generator szumu bialego :)
Mało napisałeś o zastosowaniu tego generatora. Jeśli losowe będzie
odczytywanie tej liczby, np. przez naciśniecie przycisku przez człowieka, to
możesz zrobić zwykły licznik, który biega w kółko (dość szybko) i jest
sczytywany w momencie naciśnięcia.
Zby
=======
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: =?iso-8859-2?Q?Re:_jak_na_8051_zrobi=E6_losowanie_liczby_bez_timer=F3w?=
Date: Mon, 19 Apr 2004 01:28:25 +0200
Użytkownik "Adam Dybkowski" <adybkows_at_nospam_amwaw.edu.pl> napisał w
wiadomości news:c5s790$vnu$2_at_nospam_mamut.aster.pl
Najlepszy rozklad szumu i parametry stochastyczne szumu uzyskasz ze
sprzetowego generatora ciagu losowego (RBG - Random Bit Generator).
Tak mi się przy okazji wygooglało:
http://willware.net:8080/hw-rng.html
--
Marek Dzwonnik, GG: #2061027 (zwykle jako 'niewidoczny')
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai