Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
 Аватар для Scrypto
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621

Random без повторений

22.03.2018, 16:04. Показов 4408. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно сгенерировать несколько тысяч чисел, состоящих из 11 цифр каждое, и чтобы они не повторялись?
Простым random пытался сделать так
C#
1
2
3
4
5
          string bcode = "";
          string  bcode1 = new Random().Next(1111, 9999).ToString();
          string bcode2 = new Random().Next(1111, 9999).ToString();
          string bcode3 = new Random().Next(333, 999).ToString();
          bcode = bcode1 + bcode2 + bcode3;
Но потерпел фиаско (
Как реализовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.03.2018, 16:04
Ответы с готовыми решениями:

Random без повторений, исправить код
Добрый день! Помогите оптимизировать код и так что бы значения рандома не повторялись! private void Form1_Load(object sender,...

Вывести слова, начинающиеся с букв «a» «b» «c» без учета регистра и без повторений
Здравствуйте, нуждаюсь в вашей помощи! Требуется: Открыть текстовый файл для чтения TEXT1.TXT. Провести анализ текста. Определить...

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

10
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
22.03.2018, 16:08
Цитата Сообщение от Scrypto Посмотреть сообщение
Но потерпел фиаско (
предположу, что частенько были идентичные числа?
0
 Аватар для Scrypto
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621
22.03.2018, 16:10  [ТС]
SeIZVeIZ, да, по 500 раз одно и тоже )
Дело в том, что вся конвертация проходит в цикле, за долю секунды, и соответственно рандом, судя по всему основываясь на времени или что там у него завязано, постоянно даёт одни и те же числа
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
22.03.2018, 16:11
Scrypto, вы сами же и ответили на свой вопрос.
Как говорится, если больно что-то делать, то делать это не следует.
1
 Аватар для Scrypto
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621
22.03.2018, 16:13  [ТС]
kolorotur, то есть я понимаю так, встроенных методов для быстрого решения данной задачи нет? ))
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18285 / 14208 / 5368
Регистрация: 17.03.2014
Сообщений: 28,888
Записей в блоге: 1
22.03.2018, 16:16
Scrypto, FAQ для студентов или школьников: Почему класс Random иногда генерирует одинаковые последовательности чисел?

Цитата Сообщение от Scrypto Посмотреть сообщение
то есть я понимаю так, встроенных методов для быстрого решения данной задачи нет?
Есть. Нужно всего лишь вынести Random из цикла
2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
22.03.2018, 16:18
Scrypto, нет, вы же сами правильно диагностировали причину:
Цитата Сообщение от Scrypto Посмотреть сообщение
вся конвертация проходит в цикле, за долю секунды, и соответственно рандом, судя по всему основываясь на времени или что там у него завязано, постоянно даёт одни и те же числа
Какие из этого можно сделать выводы?
Например, о создании кучи экземпляров Random в цикле вместо создания одного экземпляра и повторного использования?
0
 Аватар для Scrypto
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621
22.03.2018, 16:19  [ТС]
OwenGlendower, только прочитал ваш комментарий, дошло, что уже сталкивался с подобным )) Спасибо
0
35 / 34 / 25
Регистрация: 11.04.2015
Сообщений: 129
22.03.2018, 16:40
Как вариант, но так делать не есть хорошо
C#
1
2
3
4
          string  bcode1 = new Random().Next(1111, 9999).ToString();
          string bcode2 = new Random().Next(1111, 9999).ToString();
          while(bcode1 == bcode2)
                  bcode2 = new Random().Next(1111, 9999).ToString();
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
22.03.2018, 16:47
Harold, очень бредовое предложение, легче создать 1 экземпляр рандома и использовать всегда его и всё.
0
35 / 34 / 25
Регистрация: 11.04.2015
Сообщений: 129
22.03.2018, 16:49
SeIZVeIZ, я ждал такого ответа)
Да вы правы, лучше вызывать метод получения рандома на созданном уже экземпляре
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2018, 16:49
Помогаю со студенческими работами здесь

Рандом без повторений
Есть рандом от 1 до 8... Как сделать так, чтобы если рандом выкинул цифру, то после, он ее уже не повторял?

Рандом без повторений
Random part = new Random(); int numb = new int; for (int j = 0; j < numb.Length; j++) { numb =...

Генератор случайных чисел без random
Здравствуйте, надеюсь на вашу помощь. Нужно сделать ГСЧ в С# но не использовать при этом команду random. Много искал в инете, но ни чего не...

Псевдо-рандом без повторений
Всем доброго времени суток, появилась такая проблема, нужно приложения с рандомом, но рандом только на словах, на самом деле есть список...

Смешать массив без повторений
Доброго времени суток. Нужно смешать массив без повторений, прочел большую кучу ссылок, множество тем на нашем форуме.. И всё равно не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru