2 Въпроса за rand

crazy_pi4

Registered
Код:
<?php
$rand=rand(1,10);
?>
1. Как ще стане да показва примерно rand числа, обаче да кажем без 5,6,3?
2. Как ще стане да покажа няколко пъти rand
Код:
echo $rand;
echo $rand;
echo $rand;

Като числата не се повтарят?
 
Код:
<?
do
{
$rand = rand(1,10);
}
while ("$rand" !== "5" && "$rand" !== "6" && "$rand" !== "3");
do
{
$rand2 = rand(1,10);
}
while ("$rand2" !== "5" && "$rand2" !== "6" && "$rand2" !== "3" && "$rand" !== "$rand2");
do
{
$rand3 = rand(1,10);
}
while ("$rand3" !== "5" && "$rand3" !== "6" && "$rand3" !== "3" && "$rand" !== "$rand2" && "$rand3" !== "$rand");
echo "$rand<br>$rand2<br>$rand3";
?>
Не знам, колко работи.Сега го измислих
 
Bummer каза:
Код:
<?
do
{
$rand = rand(1,10);
}
while ("$rand" !== "5" or "$rand" !== "6" or "$rand" !== "3");
do
{
$rand2 = rand(1,10);
}
while ("$rand2" !== "5" or "$rand2" !== "6" or "$rand2" !== "3" && "$rand" !== "$rand2");
do
{
$rand3 = rand(1,10);
}
while ("$rand3" !== "5" or "$rand3" !== "6" or "$rand3" !== "3" && "$rand" !== "$rand2" && "$rand3" !== "$rand");
echo "$rand<br>$rand2<br>$rand3";
?>
Не знам, колко работи.Сега го измислих
Имаш грешка.
Знакът за различно не е !==, а !=.
Плюс това не можах да разбера какво точно иска автора.

Значи всяко едно $rand да съдържа по едно рандом число, което да бъде различно от 5,6 и 3 и в същото време да не се повтаря с останалите два $rand.
Ако правилно съм те разбрал ще ти напиша код, но първо обясни малко по-добре какво точно искаш :)
 
Код:
<?
while($rand != null && $rand2 != null && $rand3 != null){
$rand = rand(1,10);
$rand2 = rand(1,10);
$rand3 = rand(1,10);
while($rand != $rand2 && $rand2 != $rand3 && $rand != $rand3){
while($rand != 3 && $rand != 5 && $rand != 6 && $rand2 != 3 && $rand2 != 5 && $rand2 != 6 && $rand3 != 3 && $rand3 != 5 && $rand3 != 6){
echo"$rand<br>$rand2<br>$rand3<br>";
break;
}
}
}
?>

Така?

П.П. Незнам дали работи.
 
purko каза:
Код:
<?
while($rand != null && $rand2 != null && $rand3 != null){
$rand = rand(1,10);
$rand2 = rand(1,10);
$rand3 = rand(1,10);
while($rand != $rand2 && $rand2 != $rand3 && $rand != $rand3){
while($rand != 3 && $rand != 5 && $rand != 6 && $rand2 != 3 && $rand2 != 5 && $rand2 != 6 && $rand3 != 3 && $rand3 != 5 && $rand3 != 6 &&){
echo"$rand<br>$rand2<br>$rand3<br>";
}
}
}
?>

Така?

П.П. Незнам дали работи.
В кодът ти има грешка.
Накрая на if - && $rand3 != 6 &&) последните && трябва да ги няма.
Иначе кодът ти не извежда нищо.

П.П:
Ето какво сътворих аз. Ако не е така нека @crazy_pi4 каже какво точно иска и ще поправя кода :)

Код:
<?php
for ($i=1;$i<=10;$i++) {
if ($i != 3 && $i != 5 && $i != 6) {
$masiv[] = $i; // създаваме масив с числа от 1 до 10, като пропускаме 3,5 и 6.
}
}

shuffle($masiv); // разбъркваме масива

for ($i=1;$i<=3;$i++) {
$rand[] = $masiv[0]; // взимаме първата стойност на масива в нов масив
array_shift($masiv); // премахваме първата стойност от стария масив
}

echo "$rand[0]<br>$rand[1]<br>$rand[2]"; // извеждаме 3-те променливи на екрана
?>

Като $rand[0] - ти е първата променлива. $rand[1] - втората и $rand[2] третата.

Кода ще изведе 3 произволни числа, от 1 до 10. Различни от 3,5 и 6 като 3-те са различни по между си :)
 
HunteR мерси ;)

А само да питам още нещо...примерно имам в таблица числа, 1,5,125 и т.н. как ще стане да извеждам числа и с тях да правя ранд..тва с извеждането е лесно....ама после как да правя ранд с тях?
 
Дай малко повечко информация. За каква таблица става на въпрос?
 
Таблица - База данни ...

И взимаме числата примерно от таблица, neshto поле id where qwe='$qweqweqew' това е едното, другото пак така, само че where qwe='$qweqweqewq' и прави ранд на числата така =>

от първото взима числата и от второто...и прави така
число от първото - число от второто
число от първото - число от второто

Е така и да не се повтарят..да има да се повтаря само, ако записите на едното са повече от другото..примерно в едното са числата 1,2,3,4, а в другото 6,7,8

И прави рандове и понеже числата от 1-то са повече с 1 избира от 6,7,8 едно от тях да се падне със свободното!
 

Back
Горе