Случайные неповторяющиеся числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

как можно написать программу, в неком диапазоне вычисляет случайные числа, но так, чтобы ни одно число не повторялось

Решение задачи: «Случайные неповторяющиеся числа»

textual
Листинг программы
initialize set S to empty
for J := N-M + 1 to N do
    T := RandInt(1, J)
    if T is not in S then
        insert T in S
    else
        insert J in S

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Создается пустое множество S.
  2. Запускается цикл от N-M+1 до N.
  3. В каждой итерации цикла генерируется случайное число T от 1 до J (где J - текущая итерация цикла).
  4. Проверяется, есть ли число T в множестве S.
  5. Если число T отсутствует в множестве S, оно добавляется в S.
  6. Если число T присутствует в множестве S, вместо него добавляется число J.
  7. Код завершается, когда все числа от N-M+1 до N будут обработаны. Вот список действий с номерами:
  8. Создать пустое множество S.
  9. Начать цикл от N-M+1 до N.
  10. Сгенерировать случайное число T в каждой итерации цикла.
  11. Проверить, есть ли число T в множестве S.
  12. Если число T отсутствует в множестве S, добавить его в S.
  13. Если число T присутствует в множестве S, добавить число J вместо него.
  14. Повторять шаги 3-6 для каждой итерации цикла.
  15. Завершить код, когда все числа от N-M+1 до N будут обработаны.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы