Zdravím všechny!
Nevím zda s tímhle máte někdo zkušenosti, ale jak byste chtěli vygenerovat 5 náhodných čísel dejme tomu od 1 do 20 tak, aby se navzájem neshodovali?
Tzn., že pokud použiju pět proměnných, kde pomocí rand(1, 20) dostanu např.:
16 * 7 * 10 * 19 * 7
... jakým způsobem docílit toho, aby se neshodovali třeba ty dvě sedmičky?
Díky za jakoukoliv sebemenší radu!
                                 
                                 
                               
               
                              
                                 
                                      $cisla=array();
$duplicita=false;
for($i=0;$i<5;$i++) {
  $temp=rand(1,20);
  for($j=0;$j<count($cisla);$j++) {
    if($temp==$cisla[$j]) $duplicita=true;
  }
  $cisla[$i]=$temp;
  if($duplicita) $i--;
  $duplicita=false;
}
Nezkoušel jsem to. Snad je poznat, co jsem měl při psaní tohoto kódu za lubem.
                                 
                                 
                               
               
                              
                                 
                                      <?php 
function nahodneheslo ( ) 
{ 
// Pokud nesmí tvořit náhodné číslo nějaké znaky, smažte je (pokud zde jsou) z následujícího řádku. 
$moznosti= array("1","2","3","4","5","6","7","8","9","0"); 
//Počet míst náhodného hesla 
$mista="5"; 
$heslo=""; 
for ($i=0 ;$i<=$mista-1 ;$i++) 
{ 
$nahoda=rand(0, count($moznosti)-1); 
$heslo.=$moznosti[$nahoda]; 
} 
echo "Náhodné heslo: $heslo"; 
} 
nahodneheslo ( ); 
?>
skus uvidis...
                                 
                                 
                               
               
                              
                                 
                                      A jo.. sem si spatne precetl otazku... Tak nic..
                                 
                                 
                               
               
                              
                                 
                                      # Já bych použil jiný postup:
# vygenerujeme pole x čísel
for($i=1;$i<=20;$i++) $pole[$i] = $i;
# inicializujeme náhodu
srand((double) microtime() * 10000000);
# vytáhneme náhodných y prvků - pozor, funkce vrací klíče, ne hodnoty pole
$nahodna = array_rand($pole, 5);
# Toť vše
                                 
                                 
                               
               
                              
                                 
                                      Du hast recht! Byl jsem zaslepen funkcí rand()!
                                 
                                 
                               
               
                              
                                 
                                      Děkuji všem, převážně tobě, Nípale!