Генерация уникальных чисел!!

pavel_sher

Guest
Генерация уникальных чисел!!

Люди выручайте плз.
Подскажите скрипт:
Имеется определенное число картинок(к примеру 15), нужно что бы 5 картинок из 15 грузились в произвольном порядке и не было совпадений.
Или проще, имеется 15 чисел и генерируются 5 уникальных числел в произвольном порядке.
НУУ Очень нужно!
 

pavel_sher

Guest
будут ли там совпадения, мне нужно чтобы не было совпадений!
Зарание спасибо!
 

Dor

Новичок
-Числа в массив
-массив перемешиваешь (shuffle)
-выбираешь первые 5
 

Патриот

Новичок
как вариант :)
PHP:
$pic1=0;
$pic2=0;
$pic3=0;
$pic4=0;
$pic5=0;
while($pic1 == $pic2 or $pic1 == $pic3 or $pic1 == $pic4 or $pic1 == $pic5 or $pic2 == $pic3 or $pic2 == $pic4 or $pic2 == $pic5 or $pic3 == $pic4 or $pic3 == $pic5 or $pic4 == $pic5)
{
$pic1=rand(0,15);
$pic2=rand(0,15);
$pic3=rand(0,15);
$pic4=rand(0,15);
$pic5=rand(0,15);
}
print $pic1."<br>";
print $pic2."<br>";
print $pic3."<br>";
print $pic4."<br>";
print $pic5."<br>";
 

Panchous

Павел
Патриот
у меня таже задача, только картинок 150, а не 15...
как будет твой код выглядеть?
 

whirlwind

TDD infected, paranoid
Заюзать хеш-массив, в кач. ключей которого сгенеренные значения. Генерим ключи, пока количество ключей не достигнет заданного. Одинаковые ключи будут совмещаться. Все ключи составят массив уникальных значений.

Только одно НО: объем для выбора должен быть больше (или равен) заданного количества, а то будет бесконечный цикл при котором массив никогда не заполнится.
 

SaNo

Новичок
Как писал chisto_tolyan, используй

mixed array_rand ( array input [, int num_req] )

где указываешь, сколько тебе нужно записей вытащить (num_req) - все записи будут уникальными
 

Лисю

Guest
PHP:
//--------------------------------------------------------------------
//	Функция возвращает уникальную строку из $num символов.
//	Если $is_int в true, то возвращается строка стостоящая исключительно из уникальных цифр.
//--------------------------------------------------------------------
function get_uniq_passord($num = 10, $is_int = false){
$buf = "";
	for($i=0; $i<$num; $i++)
		$buf .= (($is_int || rand(1,2)%2===0) ? rand(1,9) : (rand(1,2)%2===0 ? chr(rand(65,90)) : chr(rand(97,122))));
return $buf;
}
:)
 

asm

Пофигист
Лисю

:):):) а если мне нужно строку из 15 цифр уникальных что вернет?

И вообще читать нужно задачу. А не постить свои кривые решения :)
 

bgm

&nbsp;
Мда... когда вообще начнут понимать, что программирование и "программировать" - это разные вещи? Т.е. алгоритмы - это теперь не модно? или как?
 
Сверху