Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Предотвращение повтора при "случайном выборе"

Сообщения:  [1-9] 

 
 автор: RadjaxteN   (30.08.2006 в 09:22)   письмо автору
 
   для: RadjaxteN   (30.08.2006 в 09:18)
 

Всё всё... Простите. Нашёл у себя ошибку, огромное спасибо за скрипт )

   
 
 автор: RadjaxteN   (30.08.2006 в 09:18)   письмо автору
 
   для: RadjaxteN   (30.08.2006 в 09:08)
 

У меня был массив:

<?php
$file
[1]=......
$file[2]=......
$file[3]=......
....................
$file[40]=...
$file=rand(1,40)
...................
?>

А когда вставляю ваш код:

<?php
$file
[1]=......
$file[2]=......
$file[3]=......
....................
$file[40]=...
function 
getmicrotime(){  
    return 
array_sum(explode(' 'microtime())); 

mt_srand(getmicrotime()); 
$file=mt_rand(1,40)
...................
?>

Тогда браузер выводит страничку буз интерпритирования вашей части кода...(:
function getmicrotime(){ return array_sum(explode(' ', microtime())); } mt_srand(getmicrotime()); $file = mt_rand(1, 40);

   
 
 автор: RadjaxteN   (30.08.2006 в 09:08)   письмо автору
 
   для: cyberface   (30.08.2006 в 08:52)
 

Выводит текст скрипта... (

   
 
 автор: cyberface   (30.08.2006 в 08:52)   письмо автору
 
   для: RadjaxteN   (29.08.2006 в 21:19)
 


<?php
function getmicrotime(){ 
    return 
array_sum(explode(' 'microtime()));
}
mt_srand(getmicrotime());
$file mt_rand(140);
?>

   
 
 автор: RadjaxteN   (30.08.2006 в 08:34)   письмо автору
 
   для: ExtraBrain   (29.08.2006 в 22:11)
 

Проблема ещё и в том, что функция случайного выбора происходит бесконечно...
Иначе я бы сам всё сделал....

   
 
 автор: ExtraBrain   (29.08.2006 в 22:11)   письмо автору
 
   для: RadjaxteN   (29.08.2006 в 21:19)
 

Создать массив на 40 элементов, занести в него числа от 1 до 40, перемешать случайным образом и потом подряд одно за другим извлекать. Точно ни одно число не повторится.

   
 
 автор: Trianon   (29.08.2006 в 21:38)   письмо автору
 
   для: Саня   (29.08.2006 в 21:30)
 

В рамках одного вызова скрипта двух одинаковых подряд чисел не будет. Так уж устроены линейные конгруэнтные генераторы.

А вот в рамках разных вызовов гарантировать такое поведение куда сложнее. Число хранить где-то придется.

   
 
 автор: Саня   (29.08.2006 в 21:30)   письмо автору
 
   для: RadjaxteN   (29.08.2006 в 21:19)
 

Заносить числа в массив и сравнивать каждое новое число с данными в массиве при помощи функции in_array().

   
 
 автор: RadjaxteN   (29.08.2006 в 21:19)   письмо автору
 
 

Вот у меня такой скрипт случайного выбора из чисел от 1 до 40:

<?php
$file
=rand(1,40);
?>

Как можно сделать, чтобы не было подряд двух одинаковых чисел?

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования