|
|
|
|
|
для: sasha12342
(12.03.2014 в 14:41)
| | И зачем тогда задаете вопросы? Чего вы еще хотите от rand()?
Если вам не нравится результат, то пишите алгоритм, по условиям которого должен выдаваться результат. Или заглубляйтесь в теорию вероятности.
Все ваше, это тоже самое, что и:
<?
$a = [0,1,2,3,4,5,6,7,8,9];
$m = [];
$part = 5;
$len = 5;
while($part) {
shuffle($a);
$m[] = implode(array_slice($a,0,$len));
$part--;
}
print_r($m);
|
| |
|
|
|
|
|
|
|
для: confirm
(12.03.2014 в 14:38)
| | когда результат нельзя предсказать. | |
|
|
|
|
|
|
|
для: sasha12342
(12.03.2014 в 14:32)
| | А что по вашему случайность? | |
|
|
|
|
|
|
|
для: confirm
(12.03.2014 в 14:02)
| | А что Вам мои квадратики так не понравились :-) ?
Выше я уже говорил:
Просто вывожу 5 случайных чисел (строк (могут быть просто слова)) из массива.
| Мне нужно просто вывести из массива 5 элементов. Это могут быть числа, буквы, слова, строка, квадратики и т.п.
Если вам нужна случайность, то вы ее и получаете, ибо то, что в итерациях M и N повторяется значение, это не означает, что это не случайность.
| Как Вы думайте, это утверждение верно для вышеуказанного примера:
[1][3][2][9][10]
[7][5][8][10][3]
[7][1][5][9][6]
[1][3][2][9][10]
[7][5][8][10][3]
[7][1][5][9][6]
[1][3][2][9][10]
[7][5][8][10][3]
[7][1][5][9][6]
Можно запускать скрипт хоть 100027 раз, кроме этих значений вы ничего из массива не вытащите. Как вы думайте, это просто случайные совпадения или закономерность? | |
|
|
|
|
|
|
|
для: sasha12342
(12.03.2014 в 13:57)
| | Можно получить из цифр 1 и 2 к примеру 126 случайных наборов? А почему нельзя?
Я вас спрашивал, что вы "лепите" и зачем у вас эти квадратики "[]"? Если вам нужна случайность, то вы ее и получаете, ибо то, что в итерациях M и N повторяется значение, это не означает, что это не случайность.
Если вам нужна уникальность, выбрасывайте непонятное для чего [] и сравнивайте цифры, а не строки, получить эти квадратики при выводе можно всегда, и по нужному алгоритму формируйте чего вам надо. | |
|
|
|
|
|
|
|
для: confirm
(12.03.2014 в 13:39)
| | А может, каким-то образом привязать timestamp к алгоритму выборки, тогда, я думаю, получится действительно случайный выбор из массива. | |
|
|
|
|
|
|
|
для: Jovidon
(12.03.2014 в 13:36)
| | Числа так-же повторяются, но с большем промежутком между ними... | |
|
|
|
|
|
|
|
для: sasha12342
(12.03.2014 в 13:24)
| | У вас не числа, а строки, а rand(), это не случайность, а псевдослучайность. С таким же успехом можно обейтись и без rand(), используя shuffle(). | |
|
|
|
|
|
|
|
для: sasha12342
(12.03.2014 в 13:24)
| |
<? $result = rand(0,rand(2,rand(4,count($masiv)-1)));
|
| |
|
|
|
|
|
|
|
для: confirm
(12.03.2014 в 12:08)
| | Пока пытался изложить суть проблемы, сам в ней разобрался :-)
Но сейчас возник другой вопрос:
Вышеприведённом циклом, вывожу из массива 5 случайных (уникальных) чисел. Но "rand" как-то странно их выбирает, я бы сказал, что совсем не случайно...
Вот вывод 9 "случайных" чисел из массива "$masiv":
[1][3][2][9][10]
[7][5][8][10][3]
[7][1][5][9][6]
[1][3][2][9][10]
[7][5][8][10][3]
[7][1][5][9][6]
[1][3][2][9][10]
[7][5][8][10][3]
[7][1][5][9][6]
На случайность,как-то вообще непохоже...
Может есть другой способ случайного вывода элементов из массива? | |
|
|
|
|