Ты что, не веришь, в возможность более простого доказательства теоремы Ферма? ТЕОРЕМА ФЕРМААвтор оригинала: zerkms
весенние обострения.
простое решение указанной задачи умещается в 4 строки, а у вас портянки на полстраницы.более простого

$min = 1; $max = 3; $count = 3;
$vals = array();
for($i = 0; $i < $count; $i++) {
do{
$val = rand($min, $max);
}while(in_array($val, $vals));
$vals[] = $val;
}
var_dump($vals);
Wicked: 2.186
john.brown: 3.931
vovanium: 4.293
vovanium 2: 4.563
Royal Flash: 7.283
vovanium 2: 1.166
Royal Flash: 1.683
john.brown: 2.235
Wicked: 2.271
vovanium: 2.448
$i = $count * 4;
$l = 0;
$number = array();
do{
$z = rand ($min, $max);
if(empty($number[$z])) {
$number[$z] = 1;
$l++;
}
elseif(empty($number[$z+1]) && ($z+1) <= $max){
$number[$z+1] = 1;
$l++;
}
elseif(empty($number[$z-1]) && ($z-1) >= $min){
$number[$z-1] = 1;
$l++;
}
} while($i-- > 0 && $l < $count);


Ну так понятное дело что быстрее, так как в таком случае цикл выполняется один раз, и условие проверяется только один раз, а вот как только диапазон не очень большой, он сразу начинает тупить, так как при любом совпадении, он генерит 3 новых случайных числа. Ну и конечно нет универсальности, если нужно будет увеличить количество выбираемых данных, то условие будет веселое.а при большом все же 2 вариант безспорный лидер
Ох ты! Неужто ты теор.Ферма в 4 строки можешь доказать? Ну ты геееений!Автор оригинала: zerkms
bakla
простое решение указанной задачи умещается в 4 строки, а у вас портянки на полстраницы.