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*/ #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; }
|
|
pekfos |
» 2018-11-09 22:21:11 Zapisuj w zmiennych 3 ostatnie liczby. |
|
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. |
|
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:)))
|
|
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. |
|
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. |
|
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. |
|
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? |
|
« 1 » 2 3 |