Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.07.2019, 14:04
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Рандомные числа уникальные PHP
Всем привет.

Ребята, есть скрипт пхп который выдаёт массив 16 случайных уникальных чисел без повторов.

<?php
$limit = 16;
$max_num = 5000;
$used_nums = array();
while(1) {
  $random = rand(0, $max_num);
  if(!in_array($random, $used_nums)) {
     $used_nums[] = $random;
  }
  if(count($used_nums) == $limit) { break; }
}
var_dump($used_nums);


Подскажите, как привязать скрипт к кнопке, что-бы изначально нужно было нажать на кнопку и оно все это выводило, ну а далее все числа просто поместить в таблицу.



Заранее благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2019, 16:03
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Фух. Получилось кое что сделать.

<form method="POST">
    <input type="submit" name="knopka" value="Создать 16 рандомных чисел в диапазоне от 1 до 5000" />
</form>




<?php
    # Если кнопка нажата
    if( isset( $_POST['knopka'] ) )
    {
        # Тут  код який виполянеться
		
$used = array();
while (count($used)<16){
    $rand = mt_rand(1,5000);
    if (!in_array($rand,$used)) {
        $used[] = $rand;    
        
    }
	
	 echo $rand."<br />";  
}



       
    }
?>


Теперь просто поместить все это окуратненько в таблицу числа, как это реализовать?
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2019, 16:18
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Например 3/4 столбца или т.п.
Ответить с цитированием
  #4 (permalink)  
Старый 12.07.2019, 16:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dark_Delphin
Получилось кое что сделать.
Уверены?
Ответить с цитированием
  #5 (permalink)  
Старый 12.07.2019, 17:10
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Сообщение от laimas Посмотреть сообщение
Уверены?
ну вот щас при нажатии рандомлятся 16 чисел в диапазоне от 1 до 5000.

Осталось эти 16 чисел поместить в ячейки таблицы, только я не могу понять, как это сделать...
Ответить с цитированием
  #6 (permalink)  
Старый 12.07.2019, 17:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dark_Delphin
ну вот щас при нажатии рандомлятся 16 чисел в диапазоне от 1 до 5000.
А если условие !in_array($rand,$used) не будет выполнено, то сколько чисел будет? Или не важно количество?
Ответить с цитированием
  #7 (permalink)  
Старый 12.07.2019, 17:44
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

А почему оно не будет выполнено?
Ответить с цитированием
  #8 (permalink)  
Старый 12.07.2019, 17:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dark_Delphin
А почему оно не будет выполнено?
Потому, что rand, это генератор псевдослучайного числа и не обязательно, что в цикле всегда повезет и в каждой его итерации будет выпадать уникальнее значение.
Ответить с цитированием
  #9 (permalink)  
Старый 12.07.2019, 19:18
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Сообщение от laimas Посмотреть сообщение
Потому, что rand, это генератор псевдослучайного числа и не обязательно, что в цикле всегда повезет и в каждой его итерации будет выпадать уникальнее значение.
Может совпадения, ну уже сколько раз протестил вроде не было совпадения. Ну если будет то переделывать на до будет.

А в табличку можно числа засунуть?
Ответить с цитированием
  #10 (permalink)  
Старый 12.07.2019, 19:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

echo '<table><tr>' . implode('</tr><tr>', array_map(function($v) {
    return '<td>' . implode('</td><td>', $v) . '</td>';
}, array_chunk($used, 4))) . '</tr></table>';

Последний раз редактировалось laimas, 12.07.2019 в 19:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандомные неповторяющиеся числа raler jQuery 10 03.08.2014 16:32
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Связь между страницами с javascript и php ... и обратно okrip25 AJAX и COMET 7 09.01.2012 14:43
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54