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

Генерация случайных чисел С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
30.04.2012, 23:54     Генерация случайных чисел С++ #1
сгенерировать вещественные числа от 0 до 1(например,0,1;0,2;1,0; и т.д.)
в этом случае выводит только 0 и 1:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <ctime>
void main()
{
    float r;
srand(time(NULL));
for(int i=0; i<10; i++)
 {
 r=rand()%11;
 printf("%.1f\n", r);
 }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2012, 23:54     Генерация случайных чисел С++
Посмотрите здесь:

C++ генерация случайных чисел
Генерация случайных чисел C++
Генерация случайных чисел C++
C++ Генерация случайных чисел
C++ Генерация случайных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
30.04.2012, 23:56     Генерация случайных чисел С++ #2
1.0*rand()/RAND_MAX
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
30.04.2012, 23:58  [ТС]     Генерация случайных чисел С++ #3
а можно прокомментировать запись? что значит RAND_MAX?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
01.05.2012, 00:02     Генерация случайных чисел С++ #4
Цитата Сообщение от verena-12358 Посмотреть сообщение
а можно прокомментировать запись? что значит RAND_MAX?
Максимальное целое число, которое возвращает функция rand().
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
01.05.2012, 00:07  [ТС]     Генерация случайных чисел С++ #5
а как сделать в этом случае так,чтобы в файле тоже записывались числа через random(получаютя одинаковые)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#define END_TIME 1000
#define MO_1 4 
#define SKO_1 2 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
# include <conio.h>
#include<time.h>
float gaussrand(float MO, float sko)
{
    float R[6], sum=0, x;
    float r;
srand(time(NULL));
for(int j=0; j<10; j++)
 {
  r=1.0*rand()/RAND_MAX;
 printf("%.1f\n", r);
 }
    for (int i=0;i<6;i++)
        {   R[i] = r;
            sum+=R[i];
        }
     x = sqrt(2.0)*sko*(sum-3) + MO;
        return(x);
}
 
void main()
{
srand(time(NULL));
FILE *fp;
fp = fopen("./gaussrand.txt","a+");
for(int i=0;i<10;i++)
{
fprintf(fp,"%.1f\n",gaussrand(MO_1,SKO_1));
}
fclose(fp);
}
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
01.05.2012, 02:04     Генерация случайных чисел С++ #6
Цитата Сообщение от verena-12358 Посмотреть сообщение
а как сделать в этом случае так,чтобы в файле тоже записывались числа через random(получаютя одинаковые)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
float gaussrand(float MO, float sko)
{
    float R[6], sum=0, x;
    float r;
srand(time(NULL));
for(int j=0; j<10; j++)
 {
  r=1.0*rand()/RAND_MAX;
 printf("%.1f\n", r);
 }
    for (int i=0;i<6;i++)
        {   R[i] = r;
            sum+=R[i];
        }
     x = sqrt(2.0)*sko*(sum-3) + MO;
        return(x);
}
}
В данной функции 10 раз генерируется случайное число, которое выводится на экран. А потом 6 раз прибавляется последнее сгенерированное.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2012, 02:32     Генерация случайных чисел С++
Еще ссылки по теме:

генерация случайных чисел C++
C++ Генерация случайных чисел
C++ Генерация случайных чисел

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
01.05.2012, 02:32     Генерация случайных чисел С++ #7
А ещё не надо srand(time(NULL)) пихать в функцию генерации случайного числа. Эту конструкцию надо выполнить только один раз в начале программы (в функции main, например).
Yandex
Объявления
01.05.2012, 02:32     Генерация случайных чисел С++
Ответ Создать тему
Опции темы

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