Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
 Аватар для matluck
1 / 1 / 0
Регистрация: 04.04.2016
Сообщений: 89

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

20.01.2017, 03:00. Показов 6266. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать,чтобы случайные значения не повторялись?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2017, 03:00
Ответы с готовыми решениями:

Как сделать, чтобы рандом-значения не повторялись?
Или как можно сделать что бы выводилось по порядку ? psr:array of string = ('Петров', 'Иванов','Ложкин','Сидоров'); implementation ...

Как сделать так, чтобы значения экземпляров класса не повторялись
Я пытаюсь написать игру 2048. Коротко об игре, для тех кто не знает: Есть поле 4х4 в нем появляются на случайной позиции квадратики с...

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

5
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
20.01.2017, 03:13
Случайные значения на то и случайные, что есть вероятность что значение может повторится. Если вам это действительно нужно, то придется хранить все сгенерированные номера в каком нибудь списке и проверять этот список...
0
 Аватар для matluck
1 / 1 / 0
Регистрация: 04.04.2016
Сообщений: 89
20.01.2017, 04:09  [ТС]
Someone007, можно пример кода?

Добавлено через 24 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Random ran = new Random();
            
                      
            int i = ran.Next(0, 5);
            for (i=0; i<5; i++)
            {
                int a = ran.Next(i + 1);
                
                int temp = Convert.ToInt32(test.question[a]);
               test.question[a] = test.question[i];
               test.question[i] = Convert.ToString(temp);
 
            }
            //int j = ran.Next(0, 3);
 
            label1.Text = test.outputQ(i);
что то вроде этого?

Добавлено через 10 минут
Работает до тех пор, пока не выходит за пределы индекса массива, а потом говорит что-то про исключение IndexOutOfRange , т.е. мне нужно добавить туда обработку этого исключения?
0
Нарушитель
 Аватар для petrolium
99 / 33 / 10
Регистрация: 05.10.2013
Сообщений: 154
Записей в блоге: 1
20.01.2017, 04:44
C#
1
2
int i = ran.Next(0, 5);
for (; i<5; i++)
непонятно что тут происходит, выкладывай весь код
0
 Аватар для matluck
1 / 1 / 0
Регистрация: 04.04.2016
Сообщений: 89
20.01.2017, 10:51  [ТС]
petrolium,
в label Пытаюсь рандомно выводит вопросы, так,чтобы не повторялись.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        public string outputQ(int i)
        {
            Test test = new Test(); 
 
            test.question[0] = "1: ?";
            test.question[1] = "2:? ";
            test.question[2] = "3";
            test.question[3] = "4";
            test.question[4] = "5";
            return test.question[i];
           
 
        }
увидела ошибку,из-за которой IndexOutOfRange было, по-моему.

поменяла на
C#
1
2
3
4
5
6
7
8
9
10
 int i = ran.Next(0, 5);
                   
            for (k = 0; k < 5; k++)
            {   
                    a = ran.Next(k + 1);              
              
                    int temp = Convert.ToInt32(test.question[a]);
                    test.question[a] = test.question[i];
                    test.question[i] = Convert.ToString(temp);
            }
так ошибки не возникает, но вопросы все равно повторояются.
0
 Аватар для ata
269 / 253 / 186
Регистрация: 28.10.2015
Сообщений: 723
20.01.2017, 11:57
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Linq;
 
class Program
{
    public static void Main()
    {
        Random rnd = new Random();
        string[] questions = "What? Where? Who? Why? When? Whose? How? Which? Whence? Whom?".Split();
        foreach (string randomQuestion in questions.OrderBy(_ => rnd.NextDouble()))
        {
            Console.WriteLine(randomQuestion);
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2017, 11:57
Помогаю со студенческими работами здесь

Сделать, чтобы в строке StringGrid значения не повторялись
задача такая: нужно чтобы в данной строке не повторялись числа. вот мой код label z; var i,k:Integer; a:array of integer; ...

Сделать проверку на колонку, чтобы значения не повторялись (тип - varchar)
Вообщем нужно сделать проверку на колонку, чтобы значения не повторялись (тип - varchar). Слышал, что можно unique constraint делать...

Ввести в массив четыре случайные цифры, так чтобы они не повторялись
Привет! Подскажите как можно вводить в массив четыре случайные цифры и так чтобы они не повторялись. Спасибо большое!

Как сделать чтобы дроби не повторялись
Очень срочно!! Как сделать чтобы эти дроби for (int i = 0; i &lt; 10; i++) { if (B &lt; n &amp;&amp; fun(A, B) == 1) ...

Как сделать, чтобы текстуры не повторялись?
Есть 6 кубиков один из них эталонный, на эталонном формируется рандомная из массива текстура , на остальных 5 тоже формируется рандомно,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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