Collatz
Ciekawostka matematyczna: proste reguły mogą prowadzić do zaskakujących konsekwencji. Przykładem jest Hipoteza Collatza, która pyta, czy dwie proste zasady mogą sprowadzić dowolną liczbę całkowitą do 1.
Zasady są następujące:
- Dla liczb parzystych: podziel przez 2
- Dla liczb nieparzystych: pomnóż przez 3, a następnie dodaj 1
Sprawdźmy, jak to działa!
Uwaga: jeśli kod przekroczy limit czasu, dokładnie sprawdź logikę instrukcji if-else (lub zajrzyj do Podpowiedzi).
To ćwiczenie jest częścią kursu
Java średnio zaawansowany
Instrukcje do ćwiczenia
- Wprowadź odpowiedni warunek zakończenia pętli.
- Wywołaj metodę sprawdzającą, czy
njest parzyste. - Obsłuż przypadek liczby nieparzystej – powinien się uruchomić tylko wtedy, gdy pierwotne
njest nieparzyste.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
class Collatz {
static boolean isEven(int n) {
return n % 2 == 0;
}
public static void main(String[] args) {
int n = 1634;
int i = 0;
System.out.print(n);
// Enter the appropriate termination condition
while (____) {
// Call a method to check if n is even
if (____(n)) {
System.out.println(" is even");
n /= 2;
} // Handle the odd case correctly. All non-even integers are odd
____ {
System.out.println(" is odd");
n = n * 3 + 1;
}
System.out.print(n);
i += 1;
}
System.out.println(" reached in " + i + " steps");
}
}