С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
HUSTLIN
1 / 1 / 1
Регистрация: 19.10.2013
Сообщений: 75
#1

не получается рандом - C++

21.10.2013, 14:17. Просмотров 286. Ответов 1
Метки нет (Все метки)

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
#include "locale"
#include "time.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
 
int rando();
 
int main(void)
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    double X[50];
    for(int i = 0; i < 50; i++)
    {       
        X[i] = rando(); 
        printf("%.3f  (%d)\n",X[i],i);
    }           
}
 
 
int rando()
{   
    double Mv = 50.0, Mx = 1.0, Gx = 1.0;
    double Gv = 10.0/(2.0*sqrt(3.0));
    double res = 0, R = 0, V = 0, Z = 0; 
    for(int i = 0; i < 100; i++);
        {           
            R = (double)rand()/RAND_MAX;
            V += R;
            R = 0;
        }
    Z = (V - Mv)/Gv;
    res = Gx*Z+Mx;
    return res;
}
Проблема в чем:
Ищется сумма 100 рандомных чисел от 0 до 1; //V - переменная для суммы
Используются формулы
Z = (V - Mv)/Gv; //Здесь используется V
res = Gx*Z+Mx; // Здесь используется Z.
res - Это должен быть элемент массива Х, т.е. из-за рандома, он должен быть разным, и их должно быть 50-штук.
Но массив Х, при выводе показывает 50 одинаковых значений.
Скорее всего проблема с srand, но это мои догадки, прошу у вас помощи)

Добавлено через 17 минут
Немного переделал, но все равно, все элементы, при чем при каждом запуске, = -16,321

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
#include "locale"
#include "time.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
 
int rando();
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    double Mv = 50.0, Mx = 1.0, Gx = 1.0;
    double Gv = 10/(2*sqrt(3.0));
    double X[50], Z=0, V=0;
    for(int i = 0; i < 50; i++)
    {       
        V = rando();
        Z = (V - Mv)/Gv;
        X[i] = Gx*Z+Mx;;    
        printf("%.3f\n",X[i]);
        V = 0; Z = 0; 
    }   
    return 0;
}
 
int rando()
{   double res = 0, R = 0; 
    for(int i = 0; i < 100; i++);
        {           
            R = (double)rand()/RAND_MAX;
            res += R;
            R = 0;
        }   
    return res;
}
Добавлено через 12 минут
проверил дебагом 35 строку т.е.
C++
1
return res;
значения меняються
может проблема в присваивании
C++
1
V = rando();
Помогите разобраться пожалуйста...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 14:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не получается рандом (C++):

Рандом - C++
Нужна помощь!!!! Вот исходный код: #include &quot;stdafx.h&quot; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; using...

рандом - C++
Нижно массив заполнить рандомом #include &quot;stdafx.h&quot; #include &lt;iostream&gt; int _tmain(int argc, _TCHAR* argv) { double a...

рандом - C++
подскажите,плз,как рандомно выводить значения типа цццАцц, где ц-цифра, А-буква.

рандом - C++
подскажите что не так #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main() ...

Рандом - C++
возникла проблема - я создал массив, состоящий из десяти рандомных чисел. Только вот рандомными они становиться не хотят. Правда, на одном...

Рандом - C++
Как проще всего рандомно разыграть для переменной значение 1 или 0....?

1
mytilus
83 / 83 / 9
Регистрация: 04.10.2012
Сообщений: 335
21.10.2013, 14:45 #2
Все потому, что rando() возвращает int, а не float.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2013, 14:45
Привет! Вот еще темы с ответами:

Не работает рандом - C++
Здравствуйте, я тут столкнулся с проблемой, хотел написать функцию рандома от x до y, x и y передаются как параметры в функцию, так вот,...

Рандом растет - C++
srand(time(0)); int j=rand()%1000; char s=&quot;afasfa&quot;; switch (message) /* handle the messages */ ...

Про рандом - C++
Я уже понимаю, что это наверное 100500 тема, но уж сорре, раздел говорит сам за себя. По сути хотелось бы узнать разнцу между...

Использование рандом - C++
Доброго времени суток. Нужно включить использование рандома #include &lt;cmath&gt; //... srand(static_cast&lt;unsigned int&gt;(time(0))); i...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.