PHP/MySQL | rand()
Тема закрыта by
TheWilf

Вечер добрый. В общем, проблема такова:
Есть рандом: rand(1,3);
К примеру из этого рандома я записываю цифру 2 в базу.
Мне нужно еще раз рандомно выбрать цифру из таких же пределов (1,3), но не выбирая цифру 2. Т.е, чтоб рандом выбрал или 1 или 3.
Есть мысли у кого-либо?
Есть рандом: rand(1,3);
К примеру из этого рандома я записываю цифру 2 в базу.
Мне нужно еще раз рандомно выбрать цифру из таких же пределов (1,3), но не выбирая цифру 2. Т.е, чтоб рандом выбрал или 1 или 3.
Есть мысли у кого-либо?
Так-же, если рандом выберет 1 и я запишу в базу единицу, чтоб второй раз, мне рандомно выдалось или 2 или 3.
Думаю, вы уловили.
Думаю, вы уловили.
/**
* Генерирует $count случайных, уникальных чисел в диапазоне [$min, $max]
* @param int $min Минимальное число
* @param int $max Максимальное число
* @param int $count Необходимое кол-во случайных чисел
* return array Массив случайных чисел
*/
function rand_array($min, $max, $count)
{
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $count);
}
$arRand = rand_array(0, 1000, 15);
echo '<pre>'.print_r($arRand, 1).'</pre>';
/*
Array
(
[0] => 76
[1] => 577
[2] => 475
[3] => 740
[4] => 569
[5] => 183
[6] => 919
[7] => 741
[8] => 605
[9] => 79
[10] => 135
[11] => 464
[12] => 74
[13] => 317
[14] => 431
)
*/
* Генерирует $count случайных, уникальных чисел в диапазоне [$min, $max]
* @param int $min Минимальное число
* @param int $max Максимальное число
* @param int $count Необходимое кол-во случайных чисел
* return array Массив случайных чисел
*/
function rand_array($min, $max, $count)
{
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $count);
}
$arRand = rand_array(0, 1000, 15);
echo '<pre>'.print_r($arRand, 1).'</pre>';
/*
Array
(
[0] => 76
[1] => 577
[2] => 475
[3] => 740
[4] => 569
[5] => 183
[6] => 919
[7] => 741
[8] => 605
[9] => 79
[10] => 135
[11] => 464
[12] => 74
[13] => 317
[14] => 431
)
*/
После запуска rand сравниваешь результат с цифрой из базы и, при необходимости, запускаешь ещё раз
Wilf,
$velosiped = rand(1,2);
if($velosiped == 2) $velosiped == 3;
$velosiped = rand(1,2);
if($velosiped == 2) $velosiped == 3;
Function sRandom(int * x, int size)
{
srand(time(NULL));
int i, j;
for(i = 0; i < size; i++)
{
x[i] = 1 + rand() % size;
for(j = 0; j < size; j++)
{
if(i != j && x[i] == x[j])
{
while(x[i] == x[j]) { x[i] = 1 + rand() % size; }
j = -1;
}
}
}
}
________
посл. ред. 17.12.2018 в 21:51; всего 1 раз(а); by ASCET
ASCET (17.12.2018 в 21:51)
Function sRandom(int * x, int size)
{
srand(time(NULL));
int i, j;
for(i = 0; i < size; i++)
{
x[i] = 1 + rand() % size;
for(j = 0; j < size; j++)
{
if(i != j && x[i] == x[j])
{
while(x[i] == x[j]) { x[i] = 1 + rand() % size; }
j = -1;
}
}
}
}
Эт не PHP :)
etozhedanya (17.12.2018 в 21:15)
После запуска rand сравниваешь результат с цифрой из базы и, при необходимости, запускаешь ещё раз
После запуска rand сравниваешь результат с цифрой из базы и, при необходимости, запускаешь ещё раз
Пример можешь накидать? Буду очень благодарен.
Wilf, точно, сишка) Не досмотрел) Сори)
Trec80 (17.12.2018 в 21:13)
/**
* Генерирует $count случайных, уникальных чисел в диапазоне [$min, $max]
* @param int $min Минимальное число
* @param int $max Максимальное число
* @param int $count Необходимое кол-во случайных чисел
* return array Массив случайных чисел
*/
function rand_array($min, $max, $count)
{
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $count);
}
$arRand = rand_array(0, 1000, 15);
echo '<pre>'.print_r($arRand, 1).'</pre>';
/*
Array
(
[0] => 76
[1] => 577
[2] => 475
[3] => 740
[4] => 569
[5] => 183
[6] => 919
[7] => 741
[8] => 605
[9] => 79
[10] => 135
[11] => 464
[12] => 74
[13] => 317
[14] => 431
)
*/
/**
* Генерирует $count случайных, уникальных чисел в диапазоне [$min, $max]
* @param int $min Минимальное число
* @param int $max Максимальное число
* @param int $count Необходимое кол-во случайных чисел
* return array Массив случайных чисел
*/
function rand_array($min, $max, $count)
{
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $count);
}
$arRand = rand_array(0, 1000, 15);
echo '<pre>'.print_r($arRand, 1).'</pre>';
/*
Array
(
[0] => 76
[1] => 577
[2] => 475
[3] => 740
[4] => 569
[5] => 183
[6] => 919
[7] => 741
[8] => 605
[9] => 79
[10] => 135
[11] => 464
[12] => 74
[13] => 317
[14] => 431
)
*/
Не совсем то
Стр.: 1, 2