Untitled

mail@pastecode.io avatar
unknown
python
3 years ago
838 B
3
Indexable
Never
from matplotlib import pyplot as plt
import time

start_vreme = time.time()

novi_maks = 0
br_koraka = 0
opseg = 1000000
br = 0
xosa = []
yosa = []

print()

for pocetni_broj in range(1, opseg + 1):

    broj = pocetni_broj

    while broj != 1:
        br_koraka += 1
        if (broj % 2) != 0:
            broj = (broj * 3) + 1
        else:
            broj = broj / 2

    if br_koraka > novi_maks:
        novi_maks = br_koraka
        xosa.append(br)
        yosa.append(novi_maks)
        print("\r", end="")
        print(f'Pronađen novi maksimum od {novi_maks} koraka kod početnog broja {pocetni_broj}', end="")
        br += 1
    br_koraka = 0

print()
print(f'Ukupno pojava maksimuma: {br}')
print("Računanje završeno za %s sekundi." % int((time.time() - start_vreme)))

plt.plot(xosa, yosa)
plt.tight_layout()
plt.show()