Форум программистов, компьютерный форум CyberForum.ru

Случайные(псевдослучайные) числа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка при вызове функции http://www.cyberforum.ru/cpp-beginners/thread634834.html
В функции NewWords вызывается функция correct,при отладке я не могу войти в эту функцию,к тому же потом не выводится элементы объекта класса words и ID в программе на данный момент вызываются лишь 2 функции,которые я привёл #ifndef DICTIONARY_H #define DICTIONARY_H #include "StdAfx.h" class Dictionary { public:
C++ генерирую случайные числа srand(time(NULL)); rand()%10; Всем привет, генерирую случайные числа, подскажите, пожалуйста, почему при запуске приложения числа постоянно генерируются? Как можно сделать так, чтобы при каждом запуске приложение выводило только одно число? Спасибо большое! http://www.cyberforum.ru/cpp-beginners/thread634827.html
C++ Как Увеличить шрифт элемента Edit Control
Создал Візартом Edit Control но там слишком маленький шрифт. У меня программа через Edit выводит данные, для вывода использую SetDlgItemText(IDC_EDIT1,p->Weight); вот такое выражения, подскажите как сделать выводимые данные Больше. Добавлено через 29 минут С шрифтом разобрался теперь подскажите как сделать чтоб Надпись была по середине окно а не сверху Добавлено через 23 часа 47 минут...
Реализация расширенного класса Integer C++
Всем привет. Хочу реализовать аналог класса Integer в котором можно буде проводить операции с числами любой разрядности. Начал пока с написания функции сложения и вычитания. Возникли вопросы: 1)Можно ли числа хранить в строках? 2)В моей программе происходит ошибка в функции ReadStr(), когда происходит перевыделение памяти 2 раз. С перегрузкой оператор new пока незнаком и пытаюсь сделать...
C++ Объявление в структуре http://www.cyberforum.ru/cpp-beginners/thread634769.html
ругается на объявление батона struct StructurClientData { Button^ button; unsigned int data_ip4; DWORD system_id; HANDLE system_handle; SOCKET socket_client; State_Client_Connect client_state; sockaddr_in sockaddr_client;
C++ SEHException при заполнении вектора тут такое дело... если в кратце, есть вектор summa, заполняю его нулями и вылезает SEHException. Я так понимаю, ему не хватает памяти, или я выхожу куда то за пределы? vector <double> summa; double MaxValue=78643199; ... summa.clear(); summa.resize(MaxValue,0); //заполняю нулями Неужели что то банальное и глупое? подробнее

Показать сообщение отдельно
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
08.08.2012, 17:12     Случайные(псевдослучайные) числа
Здравствуйте! Я знаю, что было много тем по поводу рандомных чисел в С++.Но всё же.

Возникла у меня проблема с получением большого кол-ва случайных(точнее псвдослучайных) чисел, которые меньше 10.Я прекрасно знаю про функцию rand() % 10, и знаю то, что ПЕРЕД ней надо юзать функцию srand().Но вот в чём прикол.Я всегда юзал srand(time(NULL)) в паре с rand() % 10, но при генерации более 1 числа эта фигня выдаёт одинаковые числа.Это всё из-за того, что time(NULL) возвращает какое-то там время в секундах, а оно при выполнении программы не меняется(прога работает оч быстро).Я попытался избежать этого, юзая srand(clock()).Это время измеряемое процессором в тактах от начала выполнения программы.Но блин, чё за фигня - и это время у меня чего то меняется как то малое кол-во раз.При получении 100 рандомных чисел все числа одинаковые.Но уже при получении чисел в кол-ве более 1000 уже видно не одно значение чисел, а 2.

Подскажите, почему так происходит.И подскажите метод получения псевдослучайных чисел такой, чтобы эти числа генерились постоянно разные, а не как у меня.

Вот код, на котором производятся тесты:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <ctime>
 
using namespace std;
int a[10];
int main()
{
    int sot,eot,tempa;
    int n;
    for(n=0;n<10;n++)
    {
        srand(clock());
        a[n]=rand() % 10;
    }
    for(int i = 0; i < n; i++)
    {
        cout<<a[i]<<" ";
    } 
    system("pause");
}
заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru