Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

есть числа int[] a={0,7,14,21,28,35 };. нужно их вывести в случайном порядке без повторений. Язык С#

Павел Писоцкий Знаток (270), закрыт 11 лет назад
Лучший ответ
Капитан Гугл Искусственный Интеллект (146199) 11 лет назад
int size=a.Length-1;
for(int i=0;i< a.Length;i++){
int r=случайный номер от 0 до size;
вывести a[ r];
a[ r]=a[size--];//переносим последний на место выведенного и уменьшаем size
}
допиливай сам
Остальные ответы
Alexey N Просветленный (34811) 11 лет назад
НЕсколько десятков (сотен, тысяч) раз обмениваете местами 2 случайных элемента.
Или по очереди выбираете из массива случайные элементы и пихаете их на выход.
. Мудрец (11276) 11 лет назад
Просто из цикла перебора массива выводить элемент со случайным индексом, и поставить условие, что если такой уже был, сгенерировать другой
ra Высший разум (113244) 11 лет назад
> нужно их вывести
Ну если только вывести, то можно так:

int[] a = { 0, 7, 14, 21, 28, 35 };
var rnd = new Random();
foreach (var e in Enumerable.Range(0, a.Length).OrderBy(i => rnd.Next())) {
    Console.WriteLine(a[e]);
}
Похожие вопросы