Polskie Forum Użytkowników GIMP-a

Ogólne dyskusje => Języki Internetu => Wątek zaczęty przez: Spoot Nick on 02.03.2010, 21:53:24



Tytuł: Skrypt generujący liczby, ale nadzwyczajny.
Wiadomość wysłana przez: Spoot Nick on 02.03.2010, 21:53:24
Tak więc mam problem ze znalezieniem (lub spłodzeniem, czego też próbowałem) skryptu java lub php generującego losową liczbę z podanego przedziału. Problem w tym, że muszę stworzyć do tego bazę numerów, które już wystąpiły, aby nie pojawiały się one powtórnie, aż do wykorzystania puli.

Jest ktoś w stanie pomóc??


Tytuł: Odp: Skrypt generujący liczby, ale nadzwyczajny.
Wiadomość wysłana przez: Ziomioslaw on 02.03.2010, 23:21:50
1. Życie to nie GG
2. Jak znam to życie, to Tobie wcale nie chodzi o Javę
3.1 Algorytm postępowania jest bardzo po prosty: bierzesz wszystkie liczby z tego przedziału, ustawiasz je w losowej kolejności i zwracasz po kolei.
3.2 Można też każda wylosowaną zapisać, a potem sprawdzać czy następna wylosowana nie znajduje się wśród już zapisanych, jak tak, to od początku losujemy.

Tak więc:
1. dowiedź się dokładnie czego chcesz używać (czym się różni Java od JavaScript)
2. porzuć GG


Tytuł: Odp: Skrypt generujący liczby, ale nadzwyczajny.
Wiadomość wysłana przez: Daffy on 03.03.2010, 21:28:09
Kod: (php)
<?php
$ilosc_liczb
=10;
$minimum=0;
$maximum=100;

if((
$maximum-$minimum)<$ilosc_liczb) break; // Zakres musi być większy niż ilość liczb do losowania

$tablica=array();
while(
count($tablica)<$ilosc_liczb)
{
$a=rand($minimum,$maximum);
if(!
in_array($a,$tablica)) $tablica[]=$a;
}

print_r($tablica);
?>
Nie uruchamiałem tego, ale powinno być dobrze.

Metoda ta jest dobra, gdy masz duży zakres, a mało liczb do wylosowania. Gdy odwrotnie masz mały zakres, a dużo liczb do losowania, lepiej skorzystać z algorytmu, który podał Ziomioslaw w 3.1

Peace