Problem z liczbami pseudolosowymi

Odpowiedz Nowy wątek
2019-05-23 08:54
0

Witam,
chcę napisac funkcje generujaca liczby pseudoloswe, program który inicjuje liczbe z przedziału (0,1), a następnie wyznacza kolejne wartości za pomocą wzoru:
screenshot-20190523085307.png

Mam coś takiego, ale nie wiem czy idę w dobrym kierunku:

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>

using namespace std;

int main()
{
    int x,n;

    srand((n>0&&n<1)); // czy to odpowiada za inicjacje od przedziału (0,1)?

         for(int i = 1; i <= 10; i++) 
             {
                cout <<  x*n + rand() % 1-x*(x*n-1) << endl;
             }

}

Chodzi mi głównie o to jak zastosować ten wzór bo nie mam pojęcia i też losuje mi same zera

edytowany 5x, ostatnio: qwerty212, 2019-05-23 09:02

Pozostało 580 znaków

2019-05-23 09:13
0

Z przedziału od 0 do 1 to będzie:
(double) rand() / RAND_MAX
a na samym początku zamiast tych cudów daj:
srand(time(NULL));

Pozostało 580 znaków

2019-05-23 09:15
0

A jak zastosować wzór?
Bo głównie tego nie wiem

edytowany 1x, ostatnio: qwerty212, 2019-05-23 09:17

Pozostało 580 znaków

2019-05-23 09:34
0

No jakoś tak pewnie:

for (int i = 1; i <= 10; i++)  {
   x = 1 - (x*x);
   cout <<x<<endl;
}
edytowany 1x, ostatnio: szweszwe, 2019-05-23 09:34

Pozostało 580 znaków

2019-05-23 09:50
0

No ale to losuje 1,0 a to ma losować potem chyba inne ale według wzoru a od 0 do 1 ma być inicjującą, albo to ja nie rozumiem zadania

Pozostało 580 znaków

2019-05-23 09:53
0

Aaa, bo u ciebie nie wiedzieć czemu x jest typu int a nie double. Czemu tak zadeklarowałeś skoro chcesz liczbę od 0 do 1 a nie całkowitą?

edytowany 2x, ostatnio: szweszwe, 2019-05-23 09:53

Pozostało 580 znaków

2019-05-23 09:55
0
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>

using namespace std;

int main()
{
   double x,n;

    srand(time(NULL));

       (double) rand() / RAND_MAX;

        for (int i = 1; i <= 10; i++)  
            {
                x = 1 - (x*x);
                cout <<x<<endl;
            }

}

Okej mam coś takiego ale właśnie czy ten wzór nie jest błędny do tego, który opisałem na początku?
Nadal losuje wartości 1,0,1,0,1,0

TREŚĆ ZADANIA

Stwórz funkcję generująca liczby pseudolosowe.
Liczba inicjującą niech będzie wartość z przedziału (0,1). Kolejne wartości niech będą wyznaczane ze wzoru na górze strony

edytowany 1x, ostatnio: qwerty212, 2019-05-23 10:04

Pozostało 580 znaków

2019-05-23 10:03
2

a gdzie inicjalizujesz x przed pętlą?
Co to ma być to (double) rand() / RAND_MAX;?

edytowany 1x, ostatnio: szweszwe, 2019-05-23 10:04

Pozostało 580 znaków

2019-05-23 10:04
0

No zaczynam z c++ i próbuję tego dowiedzieć ;/

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>

using namespace std;

int main()
{
   double x,n;

    srand(time(NULL));
     x=1; // o to chodzi?
       (double) rand() / RAND_MAX;

        for (int i = 1; i <= 10; i++)  
            {
                x = 1 - (x*x);
                cout <<x<<endl;
            }

}

A na takiej zasadzie, dzieki wielkie

edytowany 3x, ostatnio: qwerty212, 2019-05-23 10:17
No zainicjalizuj x wartością od 0 do 1 a już wiesz jak to zrobić bo nawet dodałeś tę linijkę tylko nie wiedzieć czemu samą. - szweszwe 2019-05-23 10:08
Nie no: x = (double) rand() / RAND_MAX; - szweszwe 2019-05-23 10:16

Pozostało 580 znaków

2019-05-23 11:05
3

ale wiesz ze nie masz uzyc rand, tylko napisać własny rand? wg wzoru?


Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie

Pozostało 580 znaków

2019-05-23 13:27
0
kaczus napisał(a):

ale wiesz ze nie masz uzyc rand, tylko napisać własny rand? wg wzoru?

Chodziło Ci o to że to jest przykładowy wzór? Wiem, ale nadal mi ciężko napisać według mojego, więc jak chcesz to chętnie posłucham podpowiedzi

To nie praca domowa, wziąłem sobie kilka zadan i próbuje je zrealizować

edytowany 1x, ostatnio: qwerty212, 2019-05-23 13:30

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0