Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generator liczb losowych
Forum PHP.pl > Inne > Komputery i oprogramowanie
kola76
Witam,
czy istnieje taki program a jak tak to jaki by móc za jego pomocą wygenerować losowo liczby. Mam z pośród 3000 licz wygenerować 50, zupełnie losowo i przypadkowo, tylko nie wiem jak to zrobić:(

Pomóżcie jak możecie:(
Moli
W php masz do tego funkcje rand smile.gif W innych językach programowania ta funkcja nazywa się praktycznie tak samo smile.gif
hateman
  1. <?php
  2. for ($i=0; $i<50; $i++)
  3. echo rand(0, 3000).'; ';
  4. ?>
kola76
dzięki serdeczne za pomoc:)
f1xer
A tak żeby była ścisłość to w komputerze nie istnieje coś takiego jak generator liczb losowych są to jedynie liczby pseudolosowe, wiem że to taki mały offtop ale mam taką manię i nie lubię słuchać że wyświetlają się losowe liczby każda liczba jest wyświetlana wg. jakiegoś algorytmu, dlatego nie mogą one być w pełni losowe
batman
Cytat(f1xer @ 28.09.2008, 10:14:10 ) *
A tak żeby była ścisłość to w komputerze nie istnieje coś takiego jak generator liczb losowych są to jedynie liczby pseudolosowe, wiem że to taki mały offtop ale mam taką manię i nie lubię słuchać że wyświetlają się losowe liczby każda liczba jest wyświetlana wg. jakiegoś algorytmu, dlatego nie mogą one być w pełni losowe

A słyszałeś o generowaniu losowych wartości na podstawie aktualnego obciążenia procesora, ilości zużytej pamięci, pozycji myszki na ekranie i znacznika czasu?
f1xer
To i tak nie jest wartość losowa podstawowa cecha algorytmu to jednoznaczność czyli dla konkretnych danych wejściowych daje zawsze ten sam wynik, nie możemy mówić tutaj o losowości jak przy rzucie kostką czy losowaniu ręcznemu po prostu żaden algorytm nie może dawać wyników losowych choćby był najbardziej skomplikowanym algorytmem na świecie.
mike
~f1xer ależ algorytmy generatorów liczb losowych istnieją, jest ich nawet bardzo dużo. Inna sprawa, że są trudne lub niemożliwe do implementacji. Często implementacji są powolne. Zainteresuj się trochę matematyką wyższą, bo to co piszesz zawężasz do implementacji na maszynach a nie do teorii.

Poza tym liczby generowane przez komputery można uznać za losowe tak długo jak długo są zbliżone do losowych dla jak największej ilości osób.
batman
Cytat(f1xer @ 28.09.2008, 18:19:04 ) *
...nie możemy mówić tutaj o losowości jak przy rzucie kostką czy losowaniu ręcznemu...

Nie możesz się bardziej mylić. Najlepszy przykład:
Jak spowodować, by podczas rzucania sześciościenną kością do gry, zwiększyć prawdopodobieństwo wyrzucenia 6?
Spiłować odpowiedni kant.
Dowodzi to tego, że uzyskanie prawdziwej, według Ciebie, losowości, kość musiałaby być idealnym sześcianem z dokładnie wyważonym środkiem ciężkości, co w praktyce jest niezwykle drogie. Tak samo jak zaimplementowanie odpowiednio skomplikowanego algorytmu w aplikacji. Tak więc twierdzenie, że nie ma czegoś takiego jak liczby losowe na komputerze, jest tak samo prawdziwe, jak twierdzenie, że rozbicie lustra powoduje 7 lat nieszczęść.
Podczas generowania liczb losowych na komputerze, można skorzystać z tylu różnych wartości, że prawdopodobieństwo wystąpienie powtórzeń jest porównywalne z trafieniem 6 w pięciu kolejnych losowaniach lotto.
f1xer
Cytat
Liczby pochodzące z generatora programowego zwane są liczbami pseudolosowymi, ponieważ faktycznie nie są dziełem przypadku, lecz wynikiem skomplikowanych procedur matematycznych.


Każdy algorytm jest jednoznaczny czyli jeżeli go znasz to możesz go odtworzyć, ale zgadza się są generatory sprzętowe bardzo skomplikowane i bardzo drogie opierają się na analizowaniu nieprzewidywalnych zjawisk fizycznych czyli wykorzystują już gotowe losowe dane, ale żaden program nie potrafi sam z siebie wygenerować liczby PRAWDZIWIE LOSOWEJ.
mike
Cytat(f1xer @ 30.09.2008, 08:39:33 ) *
Każdy algorytm jest jednoznaczny (...)
Gówno prawda tongue.gif Są algorytmy generujące liczby losowe. Nie chrzań mi bo studiowałem matematykę 5 lat i wiem.
Powtarzam: zainteresuj się matematyką wyższą to pogadamy. Na chwilą obecnoą wałkujesz swoją opinię na podstawie swojego "mi się wydaje".
sztosz
Cytat(mike @ 30.09.2008, 09:21:39 ) *
Gówno prawda tongue.gif Są algorytmy generujące liczby losowe. Nie chrzań mi bo studiowałem matematykę 5 lat i wiem.
Powtarzam: zainteresuj się matematyką wyższą to pogadamy. Na chwilą obecnoą wałkujesz swoją opinię na podstawie swojego "mi się wydaje".


To daj linka do jakiegoś artu, bo sam jestem ciekaw takiego algorytmu, zamiast to się chełpić studiami.
mike
Cytat(sztosz @ 30.09.2008, 09:46:03 ) *
To daj linka do jakiegoś artu, (...)
Nie mam pod ręką linków, po studiach nie kontynowałem drogi związanej z matematyką więc nie śledzę zagadnień z nią związanych.
Musiałbym odgrzebać wykłady albo stare książki, które leżą w domu u rodziców w jakiejś szafie. A nie będe jechał 200km bo sie komuś poszukać nie chce.
Z tego co pamiętam to Transformacja Boxa-Mullera (niestety link do marnej Wikipedii, ale trudno) jest jedną z metod.

Ogólnie żeby bawić się w ten temat najlepiej biegle smigać po teorii prawdopodobieństwa, znać nieźle procesy stochastyczne i mieć w głowie rozkłady większości zmiennych losowych.
Nigdy nie lubiłem tego działu.
f1xer
czyli dochodzimy do wniosku że algorytm nie musi być jednoznaczny tak? no czyli można napisać algorytm który będzie nam za każdym razem zwracał inną wartość dla tych samych danych wejściowych? no nie wydaje mi się i serio na każdym wykładzie czy szkoleniu z programowania zawsze wykładowcy nie jednokrotnie wysokiej klasy specjaliści powtarzają że MUSI BYĆ JEDNOZNACZNY inaczej nie jest to algorytm i nie ważne czy są to proste funkcje sumujące czy złożone algorytmy generowania liczb losowych (a przynajmniej tak losowych jak to obecnie możliwe) na podstawie danych dotyczących szumów termicznych czy rozpadu izotopów, niestety ale chaos istnieje tylko w przyrodzie wszystko co jest zapisane jakimkolwiek wzorem dla konkretnych danych wejściowych da da ten sam wynik ZAWSZE bo jakoś trudno sobie wyobrazić inną sytuację. Ale wiem o czym mówisz MIKE mówisz o nieprzewidywalności programu to się zgodzę można taki napisać chodzi tutaj o to że nie znasz danych wejściowych ani sposobu działania więc nie możesz przypuszczać jaki będzie wynik. A i to nie jest moje widzi misie tak po prostu jest jeżeli się mylę to bardzo chętnie poczytam o takim algorytmie.
mike
~f1xer no to jeszcze raz Ci powiem. Postudiuj trochę teori prawdopodobieństwa.
Mówisz o algorytmie i może tu się rozmijamy. Ja mam na myli to, że są twierdzenia i "wzory" dające w rezultacie liczby losowe. A to czy da się je zaimplementować na jakiejś maszynie i czy nie stracą na jakości lub nie będe za wolne i ociężałe to inna kwestia.

Mnie też uczyło wielu specjalistów wysokiej klasy. Tylko, że matematyka nie ogranicza się do zastosowania jej w informatyce. Może dlatego nie jesteś w stanie przyjąć tego co piszę.
Wiesz w liceum też mówi się uczniom, że liczby rzeczywise to całość i więcej nie ma tongue.gif A to nie dlatego, że nauczycele nie wiedzą nic o zespolonych tongue.gif

Cytat(f1xer @ 30.09.2008, 12:47:14 ) *
(...) bardzo chętnie poczytam o takim algorytmie.
Kliknij w linka w moim poprzednim poście.

---dodane---
Ok, żeby ta dyskusja nie przerodziła się w zajadłe coś o czym mowa w obrazku pod tytułem: "Ktoś w internecie nie ma racji", to...
Wtrąciłem się bo napisałeś o liczbach losowych. Przyznaję rację bo na komuterze owszem, nie koniecznie da się je wygenerować.
Rozwinąłem dyskusję dalej, choć pisałes o komputerach. Niepotrzebnie to zrobiłem.
f1xer
No to chyba zrozumiałem gdzie się mijamy ja mówiłem tutaj o rzeczywistych maszynach/programach a nie o teoriach bo teorii jest wiele i na pewno któraś zakłada generowanie liczb losowych (takich prawdziwych) tylko że nie udało się jej jeszcze wykorzystać w praktyce ale proszę cię jesteś większym autorytetem więc napisz że każdy ALGORYTM pisany na komputer lub inną machinę, w dowolnym języku programowania i o dowolnym stopniu komplikacji musi być jednoznaczny. A jeżeli chodzi o liczby losowe to po dokształceniu się doczytałem że zbiór liczb losowych ma jedną ciekawą własność mając nieskończenie wiele jego elementów nie da się precyzyjnie obliczyć następnego elementu czyli teoretycznie jest to możliwe tylko że z praktyką bywa gorzej zresztą chyba dlatego LOTTO ma takie maszynki do losowania zamiast kompa z odpowiednim oprogramowaniem i generatorem losowych liczb. Pozdrawiam i niniejszym oświadczam że więcej nie będę się spierał no chyba że po skończeniu magisterki tutaj wrócę i coś dopiszę do tego POSTA tongue.gif

Nie wydaje mi się że nie potrzebnie to zrobiłeś inni będą wiedzieć więcej a i ja się czegoś nowego nauczyłem.
mike
No to czytając Twojego posta i uzględaniając mój update w moim poptzednim poście dochodzimy do tego samego :-)
I racja, nie podważam i nie zaprzeczam, że algorytmy są jednoznaczne.

A rozmijamy się takjak zauważyłeś na płaszczyźnie rozważań. To chyba koniec OT'a ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.