Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Последовательное число

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
VAS9
Отправлено: 06 Августа, 2011 - 20:14:37
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




есть массив:
PHP:
скопировать код в буфер обмена
  1. $array = $array('4','3','7','2','0');

мне нужно чтобы выподало последовательное число от 0 но не равное этим числам в массиве(В данном случае это 1).
 
 Top
OrmaJever
Отправлено: 06 Августа, 2011 - 20:31:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




VAS9 пишет:
(В данном случае это 1).

а 6? Нижний предел 0 а где верхний? 7?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
VAS9
Отправлено: 06 Августа, 2011 - 20:32:20
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




OrmaJever пишет:
VAS9 пишет:
(В данном случае это 1).

а 6? Нижний предел 0 а где верхний? 7?


Верхний предел к примеру 10, если ни одно число не пропущено.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Августа, 2011 - 20:35:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. function uniq($array) {
  2.   $max = max($array);
  3.   do {
  4.     $num = mt_rand(0,$max);
  5.     if (!in_array($num,$array)) return $num;
  6.     } while (true);
  7.   }

С учетом что все числа целые положительные...
 
 Top
OrmaJever
Отправлено: 06 Августа, 2011 - 20:39:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar можно условие сразу в цыкле делать Улыбка
PHP:
скопировать код в буфер обмена
  1. function uniq($array) {
  2.   $max = max($array);
  3.   do {
  4.     $num = mt_rand(0,$max);
  5.     } while (in_array($num,$array));
  6.     retun $array[$num];
  7.   }


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
VAS9
Отправлено: 06 Августа, 2011 - 20:41:42
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. function uniq($array) {
  2.   $max = max($array);
  3.   do {
  4.     $num = mt_rand(0,$max);
  5.     if (!in_array($num,$array)) return $num;
  6.     } while (true);
  7.   }

С учетом что все числа целые положительные...

спасибо
 
 Top
vlom
Отправлено: 06 Августа, 2011 - 20:43:00
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1. for($i = 1; $i>=10; $i++){
  2.    array_search($i, $array)? : echo $i;
  3. }

(Добавление)
так не прокатит???
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Августа, 2011 - 20:47:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Прокатит и так Закатив глазки
Но надо будет допилить..
 
 Top
vlom
Отправлено: 06 Августа, 2011 - 20:48:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




DeepVarvar пишет:
Но надо будет допилить..
что именно можно добавить???
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Августа, 2011 - 20:49:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Да так же засунуть в ф-цию и определять max
 
 Top
White
Отправлено: 06 Августа, 2011 - 21:03:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




а по-моему человек вот об этом:
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = $array('4','3','7','2','0');
  3. sort($array);
  4. foreach($array as $index=>$value) {
  5.   if($index>0 and $array[$index-1]!=($value-1)) {
  6.     echo $array[$index-1]+1;
  7.     break;
  8.  
  9. }
  10.  

т.е найти первое число выпадающее из последовательности a[n]=a[n-1]+1
Цитата:
последовательное число


-----
if(time()>1356048000) die();
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB