От Ваших комментариев до других плакатов похоже, что Вас оставляют с malloc () и друзья. Вектор не позволит Вам не создать элементы.
Первая ошибка: никогда не использовать несколько экземпляров Random, используйте один экземпляр и передайте его вместе с другими параметрами.
Вы создаете случайный класс каждый раз, когда вам нужно создать число. Это даст вам сумасшедшие результаты.
См. Здесь: ИЗ MSDN
Этой проблемы можно избежать, создав один случайный объект, а не несколько.
Для повышения производительности создайте один случайный объект. для генерации множества случайных чисел с течением времени вместо многократного создания новых объектов Random для генерации одного случайного числа.
Например, создать частный экземпляр Random ...
Когда вы создаете «Random rnd = new Random ();» он засевается по текущему времени. Когда вы отлаживаете свой код (что требует времени), он будет каждый раз заполняться по-разному.
Создайте 1 экземпляр Random и ссылайтесь на него везде.
В дополнение к тому, что было упомянуто ранее ...
Используйте случайный выбор для таких вещей, как игра в кости, карточные игры, выбор случайных изображений и так далее. Если вам когда-нибудь понадобится создать случайное число в целях безопасности, используйте System.Security.Cryptography.RandomNumberGenerator. В этом простом примере показано создание случайного целого числа.
RandomNumberGenerator gen = RandomNumberGenerator.Create();
byte[] myBytes = new byte[4];
gen.GetBytes(myBytes);
int myValue = (BitConverter.ToInt32(myBytes, 0));
НЕ используйте его, если у вас нет необходимости в безопасности. Производительность ниже, чем у класса Random. Я полагаю, вы могли бы использовать это для засева Random, но это может быть излишним.
EDIT: Мне пришло в голову, что я никогда не тестировал это. Быстрый тест производительности показал следующее:
1 000 000 случайных чисел: RandomNumberGenerator: 2,6 секунды Случайный: 0,015 секунды.
Таким образом, Random примерно в 150 раз быстрее.
Задайте конструктору Random начальное число. В этом проблема.
http://msdn.microsoft.com/en-us/library/aa329890%28VS.71%29.aspx
Random r = new Random(DateTime.Now.Millisecond);