Skocz do zawartości

[Teoria] Liczby losowe - generowanie i wykorzystanie w robotyce amatorskiej.


Kaytec

Pomocna odpowiedź

@wsowa: _wiem_ jak działają generatory liczb losowych. Są możliwe 2 opcje:

- liczba obliczana za pomocą algorytmu: nie jest absolutnie wcale losowa

- liczba pobierana z tablicy: jest liczbą pseudolosową tak długo jak długo nie przekroczymy wykorzystamy wszystkich liczb, wcześniej trzeba ponownie "wylosować" nr początkowy.

Piszesz tak jakbyś sam nie wiedział jak działają. Ja właśnie piszę o zaimplementowaniu tablicy liczb pseudolosowych.

@Timon: nie chodzi mi o sumę, tylko o składanie. Można ew. nazwać to sumą ważoną: z pierwszego pomiaru bierzemy 2b, wswaiamy na pozycje 0-1, z drugiego na 1-2, itd. Z czterech pomiarów mamy 8b wartość.

Wszystko zależy czy liczby losowe chcemy dołożyć do już istniejącej płytki (na której może nam się poszczęścić, że ADC będzie wolne i można je delikatnie zmodyfikować, albo, że nie będzie wolne i w takim wypadku najlepiej użyć tablicy), czy o zupełnie nowego projektu. W tm drugim przypadku można albo zrobić w spoób prosty i tani, ale wadliwy (np. albo mało wydajny albo mniej losowy), albo droższy i bardziej skomplikowany, ale zdecydowanie pewniejszy. Warto znać rozwiązania dla każdej z tych sytuacji.

Link do komentarza
Share on other sites

Generator liczb pseudolosowych jaki znajdziesz w bibliotekach standardowych większości języków zwraca liczby które SĄ pseudolosowe.

Co do większej ilości liczb losowych. To tablica ma ograniczenia, a nie generator, bo to tablica potrzebuje pamięci. 1000000 32-bitowych intów, zajmuje 4MB pamięci. sporo jak na uP. generowanie ich na bierząco w miarę potrzeb nie zajmuje pamięci w ogóle. 1000000000 64-bitowych intów zajmuje 8GB pamięci. sporo jak na PC. generowanie ich nie wymaga pamięci w ogóle. Zgodzę, się, że generator da Ci liczby pseudolosowe, a do tablicy możesz sobie wklepać wyniki rzucania kostką więc będziesz mieć prawdziwe losowe liczby, ale generatory dają wyniki o zdecydowanie wystarczającym stopniu losowości.

A "random number generator" based solely on deterministic computation cannot be regarded as a "true" random number generator, since its output is inherently predictable. How to distinguish a "true" random number from the output of a pseudo-random number generator is a very difficult problem. However, carefully chosen pseudo-random number generators can be used instead of true random numbers in many applications. Rigorous statistical analysis of the output is often needed to have confidence in the algorithm.

Więc nie ma potrzeby używania tablic, biorąc pod uwagę jakość generatorów liczb pseudolosowych szczególnie, że tablice wymagają 1) pamięci 2) nakładu na ich (nie-psudo) losowe wygenerowanie.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.