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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Сгенерировать 4-х значное число по задданому алгоритму
 
 автор: admiral   (02.05.2012 в 00:06)   письмо автору
 
 

Нужно сгенерировать 4-х значное число, при этом в нем не должно быть более двух одинаковых цисел и неважно в каком порядке. Например 3233 не допускается, а 3523 или 3365 допускаются.

И самый важные момент, нужно сверять с массивом на наличе сгенерированного числа в данном массиве.
Т.е. есть функция get_is_number($arg), которое возвращает либо true, либо false. Если сгенерированное число $arg существует, то функция возвращает true, и нужно заново генерировать число, если возвращает false, То данного числа в массиве нет, тогда возвращаем это число и прекращаем рекурсию (если тут нужно именно рекурсией).

  Ответить  
 
 автор: demonow   (02.05.2012 в 00:34)   письмо автору
 
   для: admiral   (02.05.2012 в 00:06)
 

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

  Ответить  
 
 автор: confirm   (02.05.2012 в 00:46)   письмо автору
 
   для: admiral   (02.05.2012 в 00:06)
 

<?
if(!isset($_SESSION['rnd'])) $_SESSION['rnd'] = array();

function 
rndNum() {
  
$s '0123456789';
  
$n substr(str_shuffle($s), 04);
  if(!
in_array($n$_SESSION['rnd'])) {
     
array_push($_SESSION['rnd'], $n);
     return 
$n;
  } else 
rndNum(); 
}

echo 
rndNum();

Но учтите, нужно еще проверять и длину массива хранящего числа на максимально возможную. И если она достигнет предела, тогда что?

  Ответить  
Rambler's Top100
вверх

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