Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> losowanie z puli bez powtorzen
obara
post 15.12.2003, 16:55:02
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.07.2003

Ostrzeżenie: (0%)
-----


Czy znajduje sie gdzies juz moze odpowiedz na pytanie:
W jaki sposob wylosowac z zamknietego zbioru kilka elementow tak aby zaden sie nie powtarzal?

Czy ktos zna odpowiedz nielopatologiczna?
Chodzi mi o to aby nie robic petli tak dlugo losujacej, az wezmie rozne rekordy. Rozwiazanie moze byc sql'owe poniewaz rekordy pobierane beda z bazy.
Go to the top of the page
+Quote Post
dob
post 15.12.2003, 17:00:11
Post #2





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kod pochodzi z manualowych komentarzy do funkcji rand
[php:1:77059632e4]<?php
// set some globals
$s = array();
$n = 5; // the range you require (this will give 1-12)

function set_num() {
global $s, $n;
$add = "yes";
$ran = rand(1, $n);
if(count($s) > 0) {
foreach($s as $sh) {
if($ran == $sh) {
$add = "no";
}
}
}
if($add == "yes") {
$s[] = $ran;
} else {
set_num();
}
}

// call the function as needed
while(count($s) < $n) {
set_num();
}
// just output a list seperated by whitespace
foreach($s as $sh) {
echo $sh."&nbsp;";
}
?>[/php:1:77059632e4]


--------------------
Go to the top of the page
+Quote Post
BzikOS
post 15.12.2003, 17:02:54
Post #3





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


ekhm. a nie wystarczy samo array_rand()?
Jako drugi parametr można podać ilość elementów do wylosowania.
Go to the top of the page
+Quote Post
dob
post 15.12.2003, 17:10:40
Post #4





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat
ekhm. a nie wystarczy samo array_rand()?[...]


Niewiedziałem :oops:


--------------------
Go to the top of the page
+Quote Post
obara
post 15.12.2003, 17:21:48
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.07.2003

Ostrzeżenie: (0%)
-----


:oops: jakis stary manual chyba mam...

dzieki wielkie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 02:21