|
|
|
| Можно ли как нибудь указать число, которое НЕ должна возвращать функция rand(); ? Например: нужно вернуть любое число от 0 до 15, исключив 5 и 11... Есть ли что-то быстрее и проще чем while с проверкаой результата ? | |
|
|
|
|
|
|
|
для: amigo62
(17.11.2007 в 19:36)
| | Навернео, придется все-таки через цикл :))
rand позволяет задать только верхнюю и нижнюю границы диапазона... | |
|
|
|
|
|
|
|
для: ddhvvn
(17.11.2007 в 19:41)
| | А если сформулировать так: требуется получить три случайных неповторяющихся индекса (для выборки из массива)? | |
|
|
|
|
|
|
|
для: amigo62
(17.11.2007 в 20:00)
| |
$x1 = rand(1, 100);
$x2 = $x1+rand(1,100);
$x3 = $x2+rand(1,100);
|
Ну или типа того. Если использовать уже полученное значение для формирования нового, то повторения будут только если был 0. | |
|
|
|
|
|
|
|
для: amigo62
(17.11.2007 в 20:00)
| | array - функции смотрите. | |
|
|
|
|
|
|
|
для: mihdan
(17.11.2007 в 20:13)
| | Наверно все же через цикл придется=( | |
|
|
|
|
|
|
|
для: amigo62
(17.11.2007 в 19:36)
| | А если попробовать
<?
//$num - трока вида "2|43|6", то есть числа разделаются знаком |
function pr($num)
{
$exp = explode("|", $num);
$r = rand(0,100);
for($i=0;$i<count($exp);$i++)
{
if($r==$exp($i))
{
pr($num);
}
}
}
//вызываем
pr("1|6|45|3");
?>
|
Что-то вроде этого | |
|
|
|
|
|
|
|
для: DEM
(18.11.2007 в 11:16)
| | DEM, тоже вариант:) а я так сделал:
<?php
$bin=rand(0,100);
while(in_array($bin,$bindex))
{
$bin=rand(0,100);
}
$bindex[$i]=$bin;
?>
|
| |
|
|
|
|
|
|
|
для: amigo62
(20.11.2007 в 21:50)
| | На мой взгляд, цикл do ... while() смотрелся бы чуть лучше. | |
|
|
|