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

Рандомный генератор чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
16.10.2012, 19:27     Рандомный генератор чисел #1
Привет, ребята, у меня назрел вопрос. Я только-только начал изучать C++, и мне дали задание, написать генератор чисел. Я ввожу два числа, которые берутся за минимальную и максимальную точку диапазона, и генератор мне выводит случайное число из этого диапазона.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
#include <ctime>
    using namespace std;
int main ()
{
    int a,b,i;
    cout<<"Vvedite a i b:";
    cin>>a>>b;
        srand(a,b);
        rand(a,b,i);
        time((NULL)|clock());
    cout>>i;
return 0;
}
Короче, выбило аж целых 28 ошибок большинство из них "смотреть std::operator>>"
Просто кому не лень, посмотрите код, скажите, где есть мои проколы. И прошу не смеятся, я только начинаю познавать это ремесло
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 19:27     Рандомный генератор чисел
Посмотрите здесь:

генератор чисел C++
Генератор чисел C++
C++ Генератор чисел
Генератор чисел C++
C++ Генератор случайных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,898
Записей в блоге: 2
Завершенные тесты: 1
16.10.2012, 19:47     Рандомный генератор чисел #2
Можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
    using namespace std;
int main ()
{
    int minv,maxv,rv;
    cout<<"Vvedite MIN i MAX:";
    cin>>minv>>maxv;
    srand(time(NULL));
    rv=minv+rand()%(maxv-minv+1);
    cout<<rv<<endl;
    system("pause");
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Noobass Посмотреть сообщение
Просто кому не лень, посмотрите код, скажите, где есть мои проколы.
Не знаю, откуда вы взяли это
C++
1
2
3
4
srand(a,b);
rand(a,b,i);
time((NULL)|clock());
cout>>i;
тут все 28 ошибок
GAGAn
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 37
16.10.2012, 20:04     Рандомный генератор чисел #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <stdlib.h>
    using namespace std;
int main ()
{
    int a,b,i;
    cout << "Vvedite a  : ";
    cin >> a;
     cout << "Vvedite b  : ";
    cin >> b;
      i  = a + rand() % b ; //a минимальное число, b максимальное число 
       
    cout <<"i = "<< i;
    cin.get();
    cin.get();
return 0;
}
На счет srand () гугл сказал что это что то сложное и не стоит туда лезть ели только начинаешь.
C++
1
        rand(a,b,i);// функция rand()  имеет тип void  и не принимает аргументов.
Исправьте меня если что не так)
Я тоже только начинаю программировать)

Добавлено через 13 минут
Нагуглл что
C++
1
srand(time(NULL))
добавляет к ГСЧ текущее время системы тем самым число не будет все время повторятся.
А вообще ГСЧ не существует, ну конечно можно брать за точку отсчета допустим колебания земли и тогда предсказать число практически не возможно но все же возможно
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <stdlib.h>
    using namespace std;
int main ()
{
    int a,b,i;
    cout << "Vvedite a  : ";
    cin >> a;
     cout << "Vvedite b  : ";
    cin >> b;
      // srand(time(NULL)); // добавить для псевдонепредсказуемости.
      i  = a + rand() % b ; //a минимальное число, b максимальное число 
       
    cout <<"i = "<< i;
    cin.get();
    cin.get();
return 0;
}
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
16.10.2012, 20:23     Рандомный генератор чисел #4
Цитата Сообщение от GAGAn Посмотреть сообщение
А вообще ГСЧ не существует, ну конечно можно брать за точку отсчета допустим колебания земли и тогда предсказать число практически не возможно но все же возможно
Под линуксом есть (хотя говорят, что тоже не идеал)
Yandex
Объявления
16.10.2012, 20:23     Рандомный генератор чисел
Ответ Создать тему
Опции темы

Текущее время: 20:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru