Na wstępie do informatyki mam takie zadanie wykonać:
Przeprowadź badanie zbieżności pętli
while(n>1)if(n%2)n=3*n+1; else n/=2;
Sprawdź liczby kroków która wykonuje ta pętla dla wszystkich liczb naturalnych \(\displaystyle{ n \le 1000.}\)
nie wiem jak za to się zabrać...
badanie zbieżności pętli
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
badanie zbieżności pętli
Masz przeprowadzić badanie czyli najpewniej zrobić program testowy i sprawdzić zbieżność.
Swoja drogą jest to słynny problem Collatza
dodaje w bonusie kod tylko przeanalizuj wyniki(!) - to naprawdę ciekawy problem:
Swoja drogą jest to słynny problem Collatza
dodaje w bonusie kod tylko przeanalizuj wyniki(!) - to naprawdę ciekawy problem:
Kod: Zaznacz cały
#include <stdio.h>
#define MAX 10000
main() {
int x=2,y,i;
while(x<=MAX)
{
y=x;
i=0;
while(y>1)
{
if(y%2==0) y/=2;
else y=3*y+1;
i++;
}
printf("dla %d zbiezny po %d krokach
",x,i);
x++;
}
printf("KONIEC - wszystkie zbieżne do %d",MAX);
}
-
- Użytkownik
- Posty: 131
- Rejestracja: 4 wrz 2008, o 17:01
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 33 razy
badanie zbieżności pętli
dzięki wielkie:) tylko czemu zbieżność liczy mi od 703 a nie od 1?kadiii pisze:Masz przeprowadzić badanie czyli najpewniej zrobić program testowy i sprawdzić zbieżność.
Swoja drogą jest to słynny problem Collatza
dodaje w bonusie kod tylko przeanalizuj wyniki(!) - to naprawdę ciekawy problem:Kod: Zaznacz cały
#include <stdio.h> #define MAX 10000 main() { int x=2,y,i; while(x<=MAX) { y=x; i=0; while(y>1) { if(y%2==0) y/=2; else y=3*y+1; i++; } printf("dla %d zbiezny po %d krokach ",x,i); x++; } printf("KONIEC - wszystkie zbieżne do %d",MAX); }
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
badanie zbieżności pętli
Bo tyle liczb wyświetla twoja konsola. Przekieruj sobie do pliku wyjście to zobaczysz, że program liczy od liczby 2( W linuksach zwyczajnie > wynik.txt w windowsie jakoś podobnie). A i jeszcze raz zachęcam do analizy wyniku.