Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 6

Генерация случайных чисел без совпадений

11.12.2012, 21:53. Показов 6008. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем. Нужна помощь по написании кода в котором при генерации 6-ти случайных чисел не совпадали друг с другом, диапазон от 1 до 10.
Вот на чем я остановился :

C#
1
2
3
4
5
6
7
8
9
10
        
        {
            Random peremennaya = new Random();
            label11.Text = (peremennaya.Next(10) + 1).ToString();
            label12.Text = (peremennaya.Next(10) + 1).ToString();
            label13.Text = (peremennaya.Next(10) + 1).ToString();
            label14.Text = (peremennaya.Next(10) + 1).ToString();
            label15.Text = (peremennaya.Next(10) + 1).ToString();
            label16.Text = (peremennaya.Next(10) + 1).ToString();
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2012, 21:53
Ответы с готовыми решениями:

Генерация случайных значений без повторений
Всем привет! У меня проблема, надо рандомно раскидать 4 переменных без повторений, как это можно реализовать? Пока попробовал так, но прога...

Генерация случайных чисел в интервале от 1 до 50
Написать программу которая генерирует 10 случайных чисел в интервале от 1 до 50. Вывести их на экран и посчитать сколько среди них чисел...

Генерация случайных int чисел
Random rnd = new Random(); rnd.Next(10); label7.Text = rnd; Пишет: Неявное преобразование типа...

8
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
11.12.2012, 21:56
Вы запоминайте уже сгенерированные числа, например в массиве, и при генерации очередного числа - проверяйте: было такое число уже или нет. Если было - запускаете генератор еще раз.
1
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 6
11.12.2012, 23:07  [ТС]
Это все понятно, проблема в том что я тока начал изучать С#, и если бы вам не сложно было показать наглядный пример, я бы это хорошо усвоил в своей голове.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
12.12.2012, 07:47
Создайте массив из 6-ти элементов. По очереди генерируйте числа. Генерацию делаете в цикле (подойдет do-while). Условие цикла - новый сгенерированный элемент не присутствует в массиве. По окончании цикла - добавляете элемент в массив.
1
4 / 4 / 0
Регистрация: 20.10.2012
Сообщений: 39
12.12.2012, 10:16
C#
1
2
3
Random r = new Random();
            char[] ch = Enumerable.Repeat(0, 10).Select(x => (char)('a' + r.Next(0, 25))).ToArray();
            Console.WriteLine(ch);
Вот тебе пример с буквами тоже генерирует случайные буквы
1
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
12.12.2012, 10:26
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
 
class Program
{
    static void Main(string[] args)
    {
        Random random = new Random();
        HashSet<int> hashSet = new HashSet<int>();
        while (hashSet.Count < 6)
            hashSet.Add(random.Next(0, 11));
        foreach (int val in hashSet)
            Console.Write("{0} ", val);
        Console.ReadKey(true);
    }
}
Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Linq;
using System.Collections.Generic;
 
class Program
{
    static void Main(string[] args)
    {
        Random random = new Random();
        IEnumerable<int> sequence = Enumerable.Range(0, 10).OrderBy(x => Guid.NewGuid())
            .Take(6).ToArray();
        foreach (int val in sequence)
            Console.Write("{0} ", val);
        Console.ReadKey(true);
    }
}
Добавлено через 6 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
 
public static class ArrayExtension
{
    public static void RandomShuffle(this Array arr)
    {
        Random random = new Random();
        for (int i = 0; i < arr.Length; i++)
        {
            int index1 = random.Next(0, arr.Length);
            int index2 = random.Next(0, arr.Length);
            object obj1 = arr.GetValue(index1);
            object obj2 = arr.GetValue(index2);
            arr.SetValue(obj1, index2);
            arr.SetValue(obj2, index1);
        }
    }
}
 
class Program
{
    public static int[] Range = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 
    static void Main(string[] args)
    {
        Range.RandomShuffle();
        int[] array = new int[6];
        Array.Copy(Range, array, array.Length);
        foreach (int val in array)
            Console.Write("{0} ", val);
        Console.ReadKey(true);
    }
}
3
 Аватар для BigOblom
124 / 124 / 17
Регистрация: 30.06.2010
Сообщений: 478
12.12.2012, 10:40
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
static void Main(string[] args)
        {
            int[] fArray = new int[6];
            Random _random = new Random();
            int elementsofArray = 0;
            int rand = _random.Next(1, 10);
            do
            {
                int addElement = 0;
                for (int i = 0; i < fArray.Length; i++)
                {
                    if (fArray[i] != rand)
                        addElement++;
                    else
                        addElement--;
                }
                if (addElement == 6)
                {
                    fArray[elementsofArray] = rand;
                    Console.WriteLine(rand);
                    elementsofArray++;
                }
                rand = _random.Next(1, 10);
            } while (elementsofArray != 6);
            Console.ReadLine();
1
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 6
12.12.2012, 16:32  [ТС]
Огромное спасибо всем , буду разбираться во всем этом что и как )
0
27 / 27 / 4
Регистрация: 29.01.2012
Сообщений: 160
12.12.2012, 19:16
Ну и еще в нагрузку)

Можно, если диапазон небольшой, сначала "загнать" все числа в список (List), а потом уже генерировать случайных индекс и по нему вытаскивать число (например в массив). конечно вытащенный элемент удаляем, чтобы не вытащить его еще один раз

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//  Границы диапазона
int min = 1;
int max = 10;
 
List<int> numbers = new List<int>();
 
for (int i = min; i <= max; i++)
   numbers.Add(i);
 
Random r = new Random();
 
int countNecessaryNumbers = 6; // сколько чисел нужно
int[] array = new int[countNecessaryNumbers]; // массив с не повторяющимися числами
 
for (int i = 0; i < countNecessaryNumbers; i++)
{
    int index = r.Next(0,numbers.Count);
    array[i] = numbers[index];
    numbers.RemoveAt(index);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2012, 19:16
Помогаю со студенческими работами здесь

Генерация уникальных случайных чисел
Здравствуйте. Есть следующий код: class Employee { public int Id { get; set; } public string Name { get; set;...

Генерация случайных чисел различными способами
Добрый день ! Опишу проблему! Пишу задание по программированию в университете. Задали написать программу реализации вывода N-го ...

Генерация случайных чисел в определенном интервале
подскажите пожалуйста как можно сгенерировать случайные числа, в C++ srand(time(0)), rand()%10. как запишем это в C#

Генерация случайных чисел по нажатию кнопки
Как сделать так, что бы при каждом нажатии на button в textBox отображались разные числа типа double? Добавлено через 17 минут Как...

Неправильная генерация случайных вещественных чисел
Функция имеет вид static double GetRandomNumber(double minimum, double maximum) { Random random = new...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru