Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C Liczby losowanie 3 kolejnych liczb z przedziału

Ostatnio zmodyfikowano 2018-11-16 00:26
Autor Wiadomość
gam3
Temat założony przez niniejszego użytkownika
C Liczby losowanie 3 kolejnych liczb z przedziału
» 2018-11-09 21:02:09
Witam

Mam problem z dodaniem 3 kolejnej liczby, mógł by ktoś napisać algorytm do takiego zadania:
/*Program losuje liczby z przedziału <0,10> tak długo aż wylosuje sekwencję trzech kolejnych liczb naturalnych.
np.: 3 4 5
     2 3 4*/
C/C++
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int los, zmienna1;
    srand( time( NULL ) );
    do
    {
        zmienna1 = los;
       
       
       
        los = rand() % 11;
        printf( "%3d\n", los );
       
       
       
    } while( los != 4 || zmienna1 != 3 );
   
   
   
   
   
   
   
   
   
    return 0;
}
P-172818
pekfos
» 2018-11-09 22:21:11
Zapisuj w zmiennych 3 ostatnie liczby.
P-172819
gam3
Temat założony przez niniejszego użytkownika
» 2018-11-09 23:26:10
Jakaś podpowiedź jak zrobić żeby te 3 liczby kończyły pętle, bo brakuję mi pomysłu... Wychodzi jedynie, aby te liczby były w ciągu i jedna z nich kończy pętle.
P-172820
madpl1239
» 2018-11-10 08:54:24
Hmmm.... zadanie nie takie proste. Ale wydaje mi się, znalezienie algorytmu, mechanizmu też nie jest takie trudne.
Ja skupiłbym się na aspekcie "kolejności 3 liczb naturalnych".
Na logikę trzy kolejne liczby mają pewną cechę. A mianowicie ich różnice są zawsze równe 1:)))

Czyli gdy wylosowaliśmy 5, 6, 7 to 7-6 = 1 i 6-5 = 1. Może od tego trzeba zacząć.


i krótki pseudokod:

wykonuj
     losuj_trzy_liczby_z_zadanego_przedziału;
dopóki ((liczba3 - liczba2) == (liczba2 - liczba1));


może coś w powyższym stylu. Tak na szybko to przemyślałem. Może ktoś coś .... poprawi, uzupełni warunek zakończenia pętli.


Pozdrawiam serdecznie autora problemu. Ciekawe to:)))
P-172821
pekfos
» 2018-11-10 11:19:57
Jakaś podpowiedź jak zrobić żeby te 3 liczby kończyły pętle
Masz mieć 3 zmienne i mają przechowywać 3 ostatnie wylosowane liczby. Możesz od razu im przypisać losowe liczby, pętla i tak nie powinna się kończyć przed wylosowaniem co najmniej 3 liczb. Użyj zwykłego while bo te pierwsze 3 liczby już mogą spełniać warunek stopu.

dopóki ((liczba3 - liczba2) == (liczba2 - liczba1));
To nie sprawdza, czy te liczby to kolejne liczby naturalne. 2 4 6 też przejdzie.
P-172822
gam3
Temat założony przez niniejszego użytkownika
» 2018-11-10 13:15:27
W sensie do tych 3 liczb na starcie dopisać pożądane wartośći, w sensie zmienna1=4, zmienna2=3, zmienna=2? Nie mogę tego rozwikłać, mógłbyś coś jeszcze rozjaśnić co do warunku while.
P-172823
pekfos
» 2018-11-10 14:39:34
Przypisujesz losowe wartości. Warunek nigdy nie powinien być spełniony dla mniej niż 3 wylosowanych wartości.

Nie mogę tego rozwikłać, mógłbyś coś jeszcze rozjaśnić co do warunku while.
A w ogóle próbujesz..? Pokaż co masz.
P-172824
gam3
Temat założony przez niniejszego użytkownika
» 2018-11-10 17:53:40
Próbuje, próbuje ale nic sensownego mi nie wychodzi (jestem newbie w tym temacie). Przypisuje losowe liczby, masz na mysli zmienna1=los, zmienna2=los, zmienna3=los?
P-172825
« 1 » 2 3
  Strona 1 z 3 Następna strona