Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nielosowych generator liczb
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
golab
Witam,

szukam sposobu na generowanie liczby długości, powiedzmy 50 znaków, na podstawie liczby długości 4-5 znaków.
liczba ta nie może być losowa!

tj. za każdym razem funkcja

norand($seed)

ma dać ten sam wynik, dla tego samego $seed.
Niemniej zmiana $seed o 1 powinna dać jako rezultat na tyle inną liczbę, aby sprawiała wrażenie losowej.

Z pewnością nie jestem pierwszą osobą, która rozwiązała ten problem (napisałem funkcję w oparciu o operacje *, % i pow()), lecz szukam rozwiązania które daje prawdziwie losowy (dla której rozkład normalny jest linią poziomą, a nie pofalowaną krzywą) rozrzut wyników.
redeemer
Cytat(golab @ 2.09.2014, 14:47:52 ) *
szukam sposobu na generowanie liczby długości, powiedzmy 50 znaków, na podstawie liczby długości 4-5 znaków.
liczba ta nie może być losowa!
Co to znaczy na podstawie liczby? Chodzi Ci o seed? mt_srand() + mt_rand() nie rozwiązuje Twojego problemu?
Crozin
I zdecyduj się czy mają to być liczby losowe czy mają dawać równomierny rozkład.
nospor
Zrob hasha ze swojej liczby, np md5 czy sha1, a potem kazdy znak tego hasha zamieniaj na odpowiednik liczbowy przy pomocy
http://pl1.php.net/manual/en/function.ord.php

Bedziesz mial zawsze stałą zamianę liczby na inną liczbę
golab
Cytat(redeemer @ 2.09.2014, 15:03:54 ) *
Co to znaczy na podstawie liczby? Chodzi Ci o seed? mt_srand() + mt_rand() nie rozwiązuje Twojego problemu?


Cytat(Crozin @ 2.09.2014, 15:19:55 ) *
I zdecyduj się czy mają to być liczby losowe czy mają dawać równomierny rozkład.


Czytajcie ze zrozumieniem

Cytat(nospor @ 2.09.2014, 15:25:25 ) *
Zrob hasha ze swojej liczby, np md5 czy sha1, a potem kazdy znak tego hasha zamieniaj na odpowiednik liczbowy


Właśnie o to chodziło!
Liczba wynikowa jest pseudolosowa, ale zawsze taka sama dla danego $seed
redeemer
Cytat(golab @ 3.09.2014, 23:59:01 ) *
Właśnie o to chodziło!
Liczba wynikowa jest pseudolosowa, ale zawsze taka sama dla danego $seed
Czyli dokładnie tak jak w przypadku mt_srand() + mt_rand()
celbarowicz
questionmark.gif?
Skoro liczba nie ma być losowa to jeżeli znasz liczbe nr 14 to powinieneś znać liczbę następną czyli nr 15 itd.
Łatwo przecież taką funkcję napisać. Wystarczy użyć tabeli i książki telefonicznej.
Co to jest liczba losowa?
Jeżeli znasz liczbę nr 11 to nie możesz znać liczby nr 12.(totolotek)
Szukasz kota który nie jest kotem?
Pyton_000
Ehh...

Chodzi o to żeby liczbę 10 zamienić na dowolną losową liczbę ALE aby ponowna zamiana była już tą samą liczbą co wcześniej.
Defacto chodzi o zachaszowanie cyfry w długi ciąg cyfr.
nospor
Pyton a najlepsze jest to, ze juz dawno zostalo wyjasnione o co chodzi i user już za to nawet podziękował... No ale jak widać ciagle dla niektorych polska jezyk trudna jezyk...
Pyton_000
Polska kraj odległy, nie wiedzieć gdzie leży wink.gif To już od polskiego chyba trudniejszy jest tylko chiński smile.gif
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-2024 Invision Power Services, Inc.