Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C#] Random массив без повторений.


Автор: Pork6 6.10.2007, 11:45
Добрый день. 

Мне нужно создать рандомный массив, в котором числа не будут повторяться. То есть выводиться должен массив БЕЗ ПОВТОРЕНИЙ. Работаю в C#.

Заранее спасибо.

Автор: Optimus 8.10.2007, 19:12
Код

const int SIZE = 10;
int[] masiv = new int[SIZE];
Random r = new Random();

int i = 0;
while (i < SIZE)
{
  int temp = r.Next(SIZE);
  if (masiv[temp] == 0)
  {
    masiv[temp] = i;
    ++i;
  }                
}

for (i = 0; i < SIZE; ++i)
  Console.Write("{0}  ", masiv[i]);


выводит массив без повторений, с числами от 0 и до SIZE

Автор: Rockie 10.10.2007, 10:24
Если под .NET и длина массива строго не задана, я бы сделал к примеру так:
Код
using System;
using System.Collections;
using System.Text;

namespace RandArray
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList myArray = new ArrayList();

            Random r = new Random();

            // добавление неповторяющихся элементов
            for (int i = 0; i < 100; i++)
            { 
                int temp = r.Next(0,1000);

                if (!myArray.Contains(temp))
                    myArray.Add(temp);
            }

            // вывод на экран
            foreach(int i in myArray)
                Console.Write("{0} ", i);
        }
    }
}


Optimus, у тебя "рандомные индексы" заполняются последовательными значениями smile Впрочем за идею получай плюс!


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)