Cześć,
Napisałem program, który ma dzielić odcinek na n części o losowych długościach. Długość nowych odcinków ma sumować się do 1.
Chciałem prosić o wskazówki czy ten program, a właściwie kod mógłby działać lepiej bo szczerze mówiąc nie bardzo miałem pomysł na lepsze rozwiązanie niż to, które wstawiłem.
Poniżej polecenie i kod.
Napisz program section, który wczytuje ze standardowego wejscia dodatnia liczbe całkowita n, po czym
wypisuje na standardowe wyjscie n losowych liczb nieujemnych, które daja w sumie jeden. Program
załacza tylko pliki nagłówkowe cstdlib, ctime oraz iostream.
Przykładowe wykonanie
In: 3
Out: 0.54095 0.345354 0.113696
#include <iostream>
#include <ctime>
#include <cstdlib>
int main()
{
int number;
double a, b = 1, c = 0;
do
{
std::cin >> number;
}
while (number <= 0);
std::srand(std::time(nullptr));
for (int i = 1; i < number; ++i)
{
a = ((double)rand() / RAND_MAX) * b;
b = 1 - a;
c += a;
std::cout << a << " ";
}
std::cout << 1-c;
}