Jak stworzyć generator liczb losowych na AVR bez zewnętrznych komponentów?
Generator liczb (pseudo?)losowych na podkladzie AVRa
From: "Konop" <konop13_at_nospam_gazeta.pl>
Subject: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 3 Nov 2003 15:14:03 +0100
Witam!!
Czy znacie metody realizacji generatorów liczb losowych lub
pseudolosowych na procesorze AVR - chodzi o to, żeby uzyskać efekt
całkowitej przypadkowości. Czy da się to zrobić programowo, bez stosowania
zewnętrznych elementów?? Jeśli nie, to jak to zrobić w sposób minimalizujący
liczbę zewnętrznych elementów?? A co powiecie na pomysł, aby podczas
programowania do pamięci proscesora wgrać kilkadziesiąt liczb uzyskanych
wcześniej drogą losową, niech procesor bierze je po kolei... . Czy jest to
dobre wyjście??
Pozdrawiam
Konop
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Jarek Andrzejewski <jareka_at_nospam_dawid.com.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 03 Nov 2003 15:36:17 +0100
On Mon, 3 Nov 2003 15:14:03 +0100, "Konop" <konop13_at_nospam_gazeta.pl> wrote:
Czy znacie metody realizacji generatorów liczb losowych lub
pseudolosowych na procesorze AVR - chodzi o to, żeby uzyskać efekt
całkowitej przypadkowości. Czy da się to zrobić programowo, bez stosowania
zewnętrznych elementów?? Jeśli nie, to jak to zrobić w sposób minimalizujący
nie da się. Procesor ma skońćzoną liczbę stanów, więc losowości być
nie może.
liczbę zewnętrznych elementów?? A co powiecie na pomysł, aby podczas
programowania do pamięci proscesora wgrać kilkadziesiąt liczb uzyskanych
wcześniej drogą losową, niech procesor bierze je po kolei... . Czy jest to
dobre wyjście??
Dobre jeśli:
- liczby są rzeczywiście losowe (rzut monetą?)
- użyjesz je raz
--
pozdrawiam,
Jarek Andrzejewski
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Jarek Andrzejewski <jareka_at_nospam_dawid.com.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 03 Nov 2003 15:48:19 +0100
On Mon, 03 Nov 2003 15:36:17 +0100, Jarek Andrzejewski
<jareka_at_nospam_dawid.com.pl> wrote:
On Mon, 3 Nov 2003 15:14:03 +0100, "Konop" <konop13_at_nospam_gazeta.pl> wrote:
Czy znacie metody realizacji generatorów liczb losowych lub
pseudolosowych na procesorze AVR - chodzi o to, żeby uzyskać efekt
całkowitej przypadkowości. Czy da się to zrobić programowo, bez stosowania
zewnętrznych elementów?? Jeśli nie, to jak to zrobić w sposób minimalizujący
nie da się. Procesor ma skońćzoną liczbę stanów, więc losowości być
nie może.
dodam jeszcze: na podstawie stanu w danej chwili dokładnie wiadomo
jaki będzie stan w chwili następnej
--
pozdrawiam,
Jarek Andrzejewski
========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderskiREMOWE_at_nospam_wp.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 3 Nov 2003 15:41:40 +0100
Konop wrote:
Czy znacie metody realizacji generatorów liczb losowych lub
pseudolosowych na procesorze AVR - chodzi o to, żeby uzyskać efekt
całkowitej przypadkowości.
Calkowitej przypadkowosci nie potrafi uzyskac nikt na swiecie,
wiec sie nie przejmuj, ze Ty tez nie. ;-) Dosc latwo za to zrobic
generatory pseudolosowe. Przejdz sie do biblioteki i poszukaj
tam takiej ksiazeczki: Wieczorkowski, Zielinski, "Komputerowe
generatory liczb losowych", tam jest wiecej informacji, niz Ci potrzeba.
Troche tez jest tu:
http://crypto.mat.sbg.ac.at/results/karl/server/server.html
i tu:
http://choices.cs.uiuc.edu/~akapadia/project2/project2.html
Nie kombinuj niczego na wlasna reke, bo do zrobienia dobrego
generatora liczb pseudolosowych naprawde potrzeba sporej wiedzy.
Czy da się to zrobić programowo, bez stosowania zewnętrznych elementów??
Tak.
A co powiecie na pomysł, aby podczas programowania do pamięci proscesora
wgrać kilkadziesiąt liczb uzyskanych wcześniej drogą losową, niech
procesor bierze
je po kolei... . Czy jest to dobre wyjście??
To jest bardzo zle wyjscie.
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Janusz Raniszewski <rniski_at_nospam_man.koszalin.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 03 Nov 2003 15:44:44 +0100
Czy znacie metody realizacji generatorów liczb losowych lub
pseudolosowych na procesorze AVR - chodzi o to, żeby uzyskać efekt
całkowitej przypadkowości.
Witam,
Nie da się zrobić całkowitej przypadkowości z definicji. Liczbę generuje
algorytm a więc nie może być przypadkowa.
Czy da się to zrobić programowo, bez stosowania
zewnętrznych elementów?? Jeśli nie, to jak to zrobić w sposób minimalizujący
liczbę zewnętrznych elementów??
Najpopularniejsza i najefektywniejsza metoda to wzmacnianie szumów elementów
półprzewodnikowych i ich pomiar przetwornikiem AC. Też nie do końca przypadkowa.
Szuim wcale nie jest biały a przetwornik ma skończoną precyzję przez co
umieszcza liczby w określonym przedziale.
A co powiecie na pomysł, aby podczas
programowania do pamięci proscesora wgrać kilkadziesiąt liczb uzyskanych
wcześniej drogą losową, niech procesor bierze je po kolei... . Czy jest to
dobre wyjście??
Zważywszy, że źródło liczb będzie stałe gdzie tu przypadkowość? Prędzej czy
później liczby się powtórzą.. Branie liczb po kolei też nie jest dobrym wyjściem
lepiej losować.
Zagadnienie nie jest rozwiązywalne musisz pójść na kompromis i zgodzić się na
ciąg pseudolosowy. Im większa szerokość binarna liczby tym lepiej..
JanuszR
PS
Stosowałem zwykły ciągle przewijany licznik binarny sterowany zegarem RC o jak
najgorszej stabilności
========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "jelen" <jelo_at_nospam_no_spam.sheep.one.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 03 Nov 2003 15:52:14 +0100
Witam,
Jeśli liczbe którą potrzebujesz wylosować potrzebujesz co jakiś nieokrągły
czas - np po naciśnięciu przycisku, czy nie wiem...
to najprościej puścić w szybkiej pętli inkrementacje, żeby sobie latało
0-255 w kółko, i zawsze coś innego wypadnie w momencie naciśnięcia tego
guzika...
jeleń
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "nuclear" <nuclear2001_at_nospam_poczta.onet.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 3 Nov 2003 20:17:55 +0100
Użytkownik "jelen" <jelo_at_nospam_no_spam.sheep.one.pl> napisał w wiadomości
news:pan.2003.11.03.14.52.08.342861_at_nospam_no_spam.sheep.one.pl...
Witam,
Jeśli liczbe którą potrzebujesz wylosować potrzebujesz co jakiś nieokrągły
czas - np po naciśnięciu przycisku, czy nie wiem...
to najprościej puścić w szybkiej pętli inkrementacje, żeby sobie latało
0-255 w kółko, i zawsze coś innego wypadnie w momencie naciśnięcia tego
guzika...
ewenualnie kondensator- rozładowuje się , i w pewnym momencie przerzuca
układ z 1 na 0 - wtedy układ staje - jesli pętla była dostatecznie szybka,
to na wynik wpłynie dosłownie wszystko :-) - nawet chwilowa zmiana
temperatury, która spowoduje ze kondensator rosładuje się o tą 1ms szybciej
lub wolniej - zrobiłem coś takiego w układzniedo losowania, i wyniki
wyglądają na rzeczywicie przypadkowe :-) - zadnej sekwencyjnosci
========
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: "Konop" <konop13_at_nospam_gazeta.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 3 Nov 2003 21:12:07 +0100
ewenualnie kondensator- rozładowuje się , i w pewnym momencie przerzuca
układ z 1 na 0 - wtedy układ staje - jesli pętla była dostatecznie szybka,
to na wynik wpłynie dosłownie wszystko :-) - nawet chwilowa zmiana
temperatury, która spowoduje ze kondensator rosładuje się o tą 1ms
szybciej
lub wolniej - zrobiłem coś takiego w układzniedo losowania, i wyniki
wyglądają na rzeczywicie przypadkowe :-) - zadnej sekwencyjnosci
Układ z przyciskiem odpada... z kondensatorem - może by się dało zastosować
)... . Chodzi o to, że potrzebuję co pewien czas wylosować, jak długi
będzie kolejny odcinek czasu, po którym znów wylosuję kolejny... . Ale
wszystko jest realizowane przez procka... . Więc problem polega na tym, że
procek ma mierzyć czas, a jednocześnie (w tle) losować liczby... a z drugiej
strony - losowania będą się odbywały w nieregularnych odstępach czasu.
Pozdrawiam
Konop
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Fish" <n.o.s.p.a.m.abuse_at_nospam_onet.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 3 Nov 2003 23:43:55 +0100
W artykule news:bo6crm$net$1_at_nospam_inews.gazeta.pl,
niejaki(a): Konop z adresu <konop13_at_nospam_gazeta.pl> napisał(a):
ewenualnie kondensator- rozładowuje się , i w pewnym momencie
przerzuca układ z 1 na 0 - wtedy układ staje - jesli pętla była
dostatecznie szybka, to na wynik wpłynie dosłownie wszystko :-) -
nawet chwilowa zmiana temperatury, która spowoduje ze kondensator
rosładuje się o tą 1ms szybciej lub wolniej - zrobiłem coś takiego w
układzniedo losowania, i wyniki wyglądają na rzeczywicie przypadkowe
-) - zadnej sekwencyjnosci
Układ z przyciskiem odpada... z kondensatorem - może by się dało
zastosować :)... . Chodzi o to, że potrzebuję co pewien czas
wylosować, jak długi będzie kolejny odcinek czasu, po którym znów
wylosuję kolejny... . Ale wszystko jest realizowane przez procka... .
Więc problem polega na tym, że procek ma mierzyć czas, a jednocześnie
(w tle) losować liczby... a z drugiej strony - losowania będą się
odbywały w nieregularnych odstępach czasu.
W tym zastosowaniu może sprawdzi się taki prosty generator 16 bitowych liczb
pseudolosowych:
Random(n):= [(random(n-1)+1)*75] mod 65536
--
Janusz
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news2.icm.edu.pl!news.astercity.net!not-for-mai
From: Adam Dybkowski <adybkows_at_nospam_amwaw.edu.pl>
Subject: Re: Generator liczb (pseudo?)losowych na podkladzie AVRa
Date: Mon, 03 Nov 2003 23:49:38 +0100
Konop wrote:
Układ z przyciskiem odpada... z kondensatorem - może by się dało zastosować
)... . Chodzi o to, że potrzebuję co pewien czas wylosować, jak długi
będzie kolejny odcinek czasu, po którym znów wylosuję kolejny... . Ale
wszystko jest realizowane przez procka... . Więc problem polega na tym, że
procek ma mierzyć czas, a jednocześnie (w tle) losować liczby... a z drugiej
strony - losowania będą się odbywały w nieregularnych odstępach czasu.
Jezeli nie potrzebujesz losowac zbyt czesto to okresy dobrych
pseudolosowych generatorow sa na tyle dlugie, ze nie beda ci w niczym
przeszkadzac. Przyjrzyj sie standardowej funkcji random() w avrgcc (nie
rand tylko random), jej naglowek jest w stdlib.h. Cytuje kawalek zrodla
biblioteki libc:
* From "Random number generators: good ones are hard to find",
* Park and Miller, Communications of the ACM, vol. 31, no. 10,
* October 1988, p. 1195.
--
Adam Dybkowski
adybkows_at_nospam_amwaw.edu.pl
http://www.amwaw.edu.pl/~adybkows
========
Path: news-archive.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!news.telbank.pl!news.tkmedia.pl!news-1.feed.trzepak.pl!news.tvk.wroc.pl!not-for-mai