В rand генерируются одни и те же числа [дубликат]

180
27 сентября 2017, 11:04

На данный вопрос уже ответили:

  • Функция rand в цикле 2 ответа

Имеется код:

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

void main()
{
    int n, k;
    cout << "Enter the size of the first array: ";
    cin >> n;
    cout << "Enter the size of the second array: ";
    cin >> k;
    int* arr_1 = new int[n];
    int* arr_2 = new int[k];

    for (int i = 0; i < n; i++)
    {
        srand(time(0));
        arr_1[i] = rand() % 10;
    }
    for (int i = 0; i < n; i++)
    {
        cout << arr_1[i]<<" ";
    }

    system("pause");
}

Однако каждый раз в rand генерируется одно и то же число (8 8 8 8 (условно)). В чём проблема

Answer 1

srand надо вызвать один раз перед циклом. А вы вызываете его каждый раз в цикле с аргументом time(0). Эта функция возвращает время в секундах. Пока цикл выполняется, время остается в рамках той же секунды, и вы повторно инициализируете генератор случайных чисел тем же начальным числом. Потому и rand возвращает одно и то же.

READ ALSO
Qt как узнать цвет пикселя

Qt как узнать цвет пикселя

Имея данный код как узнать цвет пикселя (20,20)?

245
Как правильно подключить bootstrap4 в elecrone?

Как правильно подключить bootstrap4 в elecrone?

Столкнулся с проблемой подключение js библиотек, вот как и я подключаю:

316
Как правильно считать сумму товара в корзине используя ajax?

Как правильно считать сумму товара в корзине используя ajax?

Товар приходит массивом и потом через форыч вывожуСумма товара в корзине: $sum += $value->cart_amount * $value->price Удаляю 1 товар с корзины используя ajax, а общая...

319
Формат цен jquery

Формат цен jquery

Приветствую! Как сделать такого формата цена 1100

283