Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127

Получение случайных переменных из массива

28.06.2013, 14:06. Показов 2618. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть интовый массив. как из этого массива записать 20 случайных чисел в другой массив?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.06.2013, 14:06
Ответы с готовыми решениями:

Получение случайных чисел
Здравствуйте. Возникла необходимость получения трёх случайных целых чисел -1,0,1. Не смог придумать, как это можно сделать. Помогите,...

Получение случайных чисел
Необходимо исправить написанную на с++ программу так, чтобы числа задавались случайным образом, а не как в этой программе ручную: ...

Получение случайных комбинаций
Привет! есть такая строка : select "" +a+b+c+d+e+f+g+h+i+j+k; мне надо написать рандом, который сделает (если можно не писать все...

31
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
28.06.2013, 15:52  [ТС]
Студворк — интернет-сервис помощи студентам
Идея была такова) в 1 файл записывать вопросы и варианты ответов, в другой правильные ответы в виде ну например ответ С - это 00100....
Потом идея была такова, достать с этого файла 20 случайных вопросов, получив на них ответы сравнить с правильными) ну в 2-х словах как то так(
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
28.06.2013, 16:01
Я бы наверно не мучался, а сделал это через классы, допустим класс Question(вопрос) и у него есть свойства такие как текст сообщения, коллекция с вариантами ответов и собственно сам правильный ответ.

Еще бы наверно создал класс для коллекции вопросов и в нем бы так же метод какой-нибудь типа GetRandomQuestions , так же был бы метод для проверки ответов на правильность, ну и в файл бы наверно сохранял через сериализацию ну на крайняк в xml, но с xml муторно работать, недолюбливаю я его)

А код плз выложи на сайт через теги C# =)
0
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
28.06.2013, 16:14  [ТС]
Я говорю же) начинающий я так и не познавший) xml, создание классов и т.д.... Я лучше так помучусь) к сожалению конечно) времени просто маловато, познавать новое... Надо как то с этим разобраться...
код каких именно форм?)
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
28.06.2013, 16:16
Ну саму реализацию с массивами - то, что обсуждали на счет случайных чисел и т.д., вот этот код давайте )
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
28.06.2013, 16:36
Самый оптимальный способ который я знаю.
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
34
35
36
#define CYBERFORUM
using System.Diagnostics;
using CyberForum = System;
 
 
internal class Program
{
    [Conditional("CYBERFORUM")]
    private static void main()
    {
        int[] array = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        int[] resultArray = new int[10];
        bool[] checkArray = new bool[array.Length];
 
        CyberForum.Random random = new CyberForum.Random();
 
        int count = 0;
        while ( count < 10 )
        {
            int tmp = random.Next( 0, 10 );
 
            if ( !checkArray[tmp] )
            {
                resultArray[count++] = array[tmp];
                checkArray[tmp] = true;
            }
        }
 
        CyberForum.Array.ForEach( resultArray, x => CyberForum.Console.Write( x + " " ) );
        CyberForum.Console.ReadKey( true );
    }
    private static void Main(string[] args)
    {
        main();
    }
}
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
28.06.2013, 16:43
Ну да, тоже неплохой вариант, думаю это даже будет получше, чем хранить список с уже попадающимися числами, тут посути каждый раз не будем блуждать по массиву чисел, чтобы найти было оно уже или нет)
1
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
28.06.2013, 17:01
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
#define CYBERFORUM
using System.Diagnostics;
using CyberForum = System;
 
 
internal class Program
{
    [Conditional( "CYBERFORUM" )]
    private static void main()
    {
        int[] array = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        CyberForum.Random random = new CyberForum.Random();
 
        for ( int i = array.Length - 1; i > 0; i-- )
            Swap( ref array[random.Next( 0, i + 1 )], ref array[i] );
 
        CyberForum.Array.ForEach( array, x => CyberForum.Console.Write( x + " " ) );
        CyberForum.Console.ReadKey( true );
    }
 
    private static void Swap<T>( ref T a, ref T b )
    {
        T c = a;
        a = b;
        b = c;
    }
 
    private static void Main(string[] args)
    {
        main();
    }
}
Использовался алгоритм Фишера–Йетса. http://ru.wikipedia.org/wiki/%... 1%81%D0%B0
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
28.06.2013, 17:09  [ТС]
Спасибо!) А можно мини комментарии чуть-чуть добавить к коду? array- вообще не помню о них ничего((
особенно код с алгоритмом Фишера
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
28.06.2013, 17:13
Да, но здесь же если будут элементы со схожими числами, то они бы в новый массив попали 2 раза

Добавлено через 1 минуту
А нет, все норм, нам же надо, чтобы именно индексы не повторялись, тогда все супер =)
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
28.06.2013, 17:13
Массив — это структура данных, содержащая несколько переменных одного типа. Массив объявляется следующим образом:
C#
1
type[] arrayName;
Массив может быть одномерным, многомерным или массивом массивов.
Значение по умолчанию числовых элементов массива задано равным нулю, а элементы ссылок имеют значение NULL.
Индексация массивов начинается с нуля: массив с элементами n индексируется от 0 до n-1.
Элементы массива могут быть любых типов, включая тип массива.

Алгоритм Фишера–Йетса ( Псевдо код ):
Code
1
2
3
4
Для тасования массива a из n элементов (индексы 0..n-1):
  для всех i от n - 1 до 1 выполнить
       j = случайное число 0 <= j <= i
       обменять местами a[j] и a[i]
1
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
28.06.2013, 22:47
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
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Random rand = new Random();
            int size1 = 50;
            int size2 = 20;
            int[] mas = new int[size1];
            int[] siv = new int[size2];
 
            for (int i = 0; i < mas.Length; i++)
            {
                mas[i] = rand.Next(100); Console.Write(mas[i] + " ");
            }
 
            Console.WriteLine("\n");
 
            for (int i = 0; i < siv.Length; i++)
            {
                siv[i] = mas[rand.Next(0, (size1 - 1))]; Console.Write(siv[i] + " ");
            }
 
 
            Console.ReadLine();
        }
    }
}
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
29.06.2013, 11:14  [ТС]
)))) глупо - но сделал сам и работает)))))) Если может кто укоротить данный пример, буду премного благодарен)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Random rnd = new Random();
            int [] oo = new int[20];            
            for (int i = 0; i < 20; i++)
            {                
                int o = rnd.Next(0, c);                
                if (i == 0 )
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else if (i == 1 && o != oo[i - 1])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 2 && o != oo[i - 1] && o != oo[i - 2])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 3 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 4 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 5 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 6 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 7 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 8 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 9 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else
                if (i == 10 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else
                if (i == 11 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 12 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 13 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else
                if (i == 14 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13] && o != oo[i - 14])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 15 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13] && o != oo[i - 14] && o != oo[i - 15])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 16 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13] && o != oo[i - 14] && o != oo[i - 15] && o != oo[i - 16])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 17 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13] && o != oo[i - 14] && o != oo[i - 15] && o != oo[i - 16] && o != oo[i - 17])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else 
                if (i == 18 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13] && o != oo[i - 14] && o != oo[i - 15] && o != oo[i - 16] && o != oo[i - 17] && o != oo[i - 18])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else
                if (i == 19 && o != oo[i - 1] && o != oo[i - 2] && o != oo[i - 3] && o != oo[i - 4] && o != oo[i - 5] && o != oo[i - 6] && o != oo[i - 7] && o != oo[i - 8] && o != oo[i - 9] && o != oo[i - 10] && o != oo[i - 11] && o != oo[i - 12] && o != oo[i - 13] && o != oo[i - 14] && o != oo[i - 15] && o != oo[i - 16] && o != oo[i - 17] && o != oo[i - 18] && o != oo[i - 19])
                { oo[i] = o; textBox2.Text += oo[i].ToString() + ", "; }
                else i--;                
            }
Добавлено через 2 минуты
Есть еще 1 вопрос. Вот у меня по нажатию кнопки должен новый вопрос выводиться, а как сделать что бы 1-й вопрос сам сразу выводил, а последующие по нажатию кнопки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.06.2013, 11:14

Несколько комбинаций случайных чисел для пяти переменных
Здравствуйте! Есть пять переменных a b c d e. Они могут принимать значения 0 или 1. Как написать генератор случайных чисел для них, но ...

Генератор случайных чисел 0 или 1 для пяти переменных
Здравствуйте! Есть пять переменных, которые будут участвовать в разветвляющемся алгоритме. Этим переменным нужно присвоить рандомно 0 или 1...

Получение переменных из FormData
Приветствую всех, возник вопрос. Как присвоить в php значения из FormData ---- (js) Как правильно к ним обращаться?

Получение переменных из классов
Можно ли что то подобное реализовать class A{ $tbl_city = 'city'; functuon foo(){} } class B extends A{ function get(){...

Получение переменных окружения
Интересует как правильно получить список переменных окружения(среды). Т.е то что выводит команда SET в консоли Есть код по примеру...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru