Другие языки программирования и технологии

Вывести последовательность из 6 элементов, чтобы значения выбирались случайно из массива , но при этом не повторялись с#

Вывести последовательность из 6 элементов, чтобы значения выбирались случайно из массива , но при этом не повторялись при помощи цикла for
у меня есть массив от 1 до 6, но я не понимаю как это сделать.
мой вариант решения заключался в том, чтобы каждый раз удалять выбранный случайный элемент, но при этом сбивается логика обращения через индексы
в общем, кто сможет обьясните(
А никто не заставляет тебя сохранять исходный массив в исходном виде же.

 int[] a = new int[] { 1, 2, 3, 4, 5, 6 }; 
Random r = new Random(DateTime.Now.Millisecond);
for (int i = a.Length; i > 0; i--)
{
int idx = r.Next(i);
Console.WriteLine(a[idx]);
a[idx] = a[i - 1];
}
Николай Бескоровайный
Николай Бескоровайный
90 250
Лучший ответ
Не знаю в чём тут трудность:
 using System; 
namespace New_Project
{ public static class Program
{ public static void Main()
{ int j, k, l, m = 0, n; bool yes;
Random rnd = new Random();
Console.Write("n = ");
n = int.Parse(Console.ReadLine());
int [] A = new int [n];
Console.WriteLine("Рандомный массив:");
for (l = 0; l < n; l++)
{ A[l] = rnd.Next() % 199 - 99;
Console.Write("{0, 4:d}", A[l]);
m++; if (m == 15) { m = 0;
Console.WriteLine(); } }
if (m > 0) { m = 0; Console.WriteLine(); }
Console.WriteLine("Шесть различных случайно выбранных элементов из данного массива:");
int [] B = new int [6];
for (l = 0; l < 6; l++)
{ begin: k = rnd.Next() % n;
yes = true; for (j = 0; j < m; j++)
if (B[j] == k) { yes = false; break; }
if (yes) { B[l] = k; m++;
Console.Write(B[l] + " "); }
else goto begin; } } } }
Надо просто все эти шесть элементов последовательности заполнять постепенно, проверяя при этом каждого нового кандидата на включение в последовательность на предмет того, не состоит ли он уже в ней.
Валерий Зверев
Валерий Зверев
66 572
Николай Бескоровайный А как это проверять, если циферки могут повторяться в исходном массиве? Мы же выводим 6 разных элементов, а не 6 разных значений.

Похожие вопросы