10 случайных, неповторяющихся чисел

Европа - быстрые серверы на дисках NVMe от $5 / Русский датацентр от 199руб

Тема в разделе "PHP & ЮМОР", создана пользователем Денис Иванов, 18 ноя 2018.

  1. Денис Иванов

    Денис Иванов Новичок

    Сообщения:
    1
    Ваш город:
    Зеленокумск, Ставропольский край, Россия
    Address:
    Zelenokumsk, Russia
    Country:
    Location on Map:
    Примера кода нет под рукой. Пишу я на языке 1С, может переведёте на свой язык. Сделать можно так:
    //Цель в том,чтобы выпало 2 шара с разными номерами
    //в диапазоне от 1 до 4
    //Создаем массив шаров от 1 до 4
    ЧислоШаровВыбора=4;
    ЧислоШаровВыпадения=2;
    МассивШаров=Новый Массив;
    КоличШаров=0;
    Пока КоличШаров<ЧислоШаровВыбора Цикл
    КоличШаров=КоличШаров+1;
    МассивШаров.Добавить(КоличШаров);
    КонецЦикла;
    //Заполняем по очереди 2 шара случайными числами от 1 до 4
    МассивВыпавшихШаров=Новый Массив;
    ГСЧ=Новый ГенераторСлучайныхЧисел(0);
    Для СчШаров=1 по ЧислоШаровВыпадения Цикл
    //Выбираем сначала из 4 шаров, затем из 3
    ВыбМас=ГСЧ.СлучайноеЧисло(1,ЧислоШаровВыбора-СчШаров+1);
    ЗначМас=МассивШаров.Получить(ВыбМас-1);
    //Добавляем значение выпавшего шара в массив выпавших шаров
    МассивВыпавшихШаров.Добавить(ЗначМас);
    //Удаляем выпавший шар из массива шаров по индексу
    МассивШаров.Удалить(ВыбМас-1);
    КонецЦикла;
    //Заполняем реквизиты Шар1 и Шар2
    Шар1=МассивВыпавшихШаров.Получить(0);
    Шар2=МассивВыпавшихШаров.Получить(1);
    //Очищаем массивы шаров и выпавших шаров
    МассивШаров.Очистить();
    МассивВыпавшихШаров.Очистить();

    Оперируя изначально переменными ЧислоШаровВыбора, ЧислоШаровВыпадения, Вы получаете тот результат, который Вам нужен. Ну а если у Вас 10 чисел, то тогда соответственно вы и получать будете их значения по индексу от 0 до 9.

    Шар1=МассивВыпавшихШаров.Получить(0);
    Шар2=МассивВыпавшихШаров.Получить(1);
    Шар3=МассивВыпавшихШаров.Получить(2);
    ..................................................
    Шар10=МассивВыпавшихШаров.Получить(9);
     
  2. antson

    antson Новичок Партнер клуба

    http://php.net/manual/ru/function.shuffle.php
    PHP:
    <?php
    $numbers 
    range(120);
    shuffle($numbers);
    $i 0;
    foreach (
    $numbers as $number) {
        echo 
    $number."  ";
        
    $i++;
       if(
    $i>9) die();
    }
    ?>
    что-то с юмором плохо у меня сегодня
     
    AnrDaemon нравится это.