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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Сформировать матрицу заданного вида http://www.cyberforum.ru/cpp-beginners/thread983368.html
Здравствуйте. Задание следующее: Сформировать квадратную матрицу порядка n по заданному образцу. При выполнении задания встроенными функциями операций для формирования матриц не пользоваться, а обрабатывать матрицы поэлементно. 1*2 0 0 ... 0 0 0 0 2*3 0 ... 0 0 0 0 0 3*4 ... 0 0 0 ..... //// ....... 0 0 0 ... 0 (n-1)n 0 0 0 0 ... 0 0 n(n+1) Мой код в паскале.
C++ Определение времени суток Помогите написать программу, которая по введенному числу из промежутка 0…24, определяет время суток. Работаю в Борланд С++ http://www.cyberforum.ru/cpp-beginners/thread983338.html
C++ умножение матрицы на вектор в mpi
Есть задача на умножение матрицы на вектор.Как сделать так,чтобы в умножении использовались только функции SEND и RECEIVE? #include <stdio.h> #include <stdlib.h> #include "mpi.h" int main (int argc, char* argv) { // Умножение матрицы на вектор
По умолчанию Построить описание класса, содержащего информацию о почтовом адресе организации C++
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения составных частей адреса, создания и уничтожения объектов этого класса. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. --- Помогите пожалуйста!) пользовался поиском по...
C++ массивы, индексы ячеек http://www.cyberforum.ru/cpp-beginners/thread983271.html
доброго времени суток. нуждаюсь в помощи более опытных программистов. Задача - даны три тройки чисел А.Б.В, каждая тройка определяет линию, которая задана уравнением ax+by=c, если точки пересечения этих линий создают вершины треугольника то вывести координаты треугольника, иначе указать прямые которые паралельны. #include <iostream> using namespace std; int main() { int i, j; ...
C++ Написать программу по обработке файла, состоящего из структур Написать программу по обработке файла, состоящего из структур. Массив структур не использовать. В программе реализовать следующие действия по обработке файла: 1.Создание - (готово) 2.Открыть файл -(готово) 3.Просмотр 4.Добавление нового элемента 5.Удаление(Редактирование) 6.Вывести результат в файл - (готово) подробнее

Показать сообщение отдельно
HUSTLIN
1 / 1 / 1
Регистрация: 19.10.2013
Сообщений: 75
21.10.2013, 14:17     не получается рандом
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();
Помогите разобраться пожалуйста...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru