for a in range(1,4): for b in range(1,4): print(a,b)
Ohjelman tulostus on seuraava:
1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3
Tässä pääsilmukka käy läpi luvut 1...3 muuttujan
a
avulla ja
sisäsilmukka käy läpi luvut 1...3 muuttujan b
avulla.
Niinpä saamme käytyä läpi kaikki tavat valita muuttujien
a
ja b
arvot väliltä 1...3.
Vastaavasti voimme käydä läpi useamman muuttujan yhdistelmiä laittamalla useampia silmukoita sisäkkäin.
Matkalaukun lukossa on koodi, joka muodostuu neljästä numerosta väliltä 1–9. Olet kuitenkin unohtanut koodin ja muistat vain, että ensimmäinen ja kolmas numero ovat samat ja numeroiden summa on 13. Mitkä kaikki koodit sinun tulee käydä läpi, kun haluat löytää oikean koodin?
Voimme ratkaista tehtävän ohjelmalla, joka käy läpi kaikki mahdolliset koodit ja tulostaa niistä ne, jotka täyttävät ehdot. Koodissa on neljä numeroa, joista jokainen on välillä 1...9, joten teemme neljä sisäkkäistä silmukkaa.
Seuraava ohjelma etsii koodit:
for a in range(1,10): for b in range(1,10): for c in range(1,10): for d in range(1,10): if a == c and a+b+c+d == 13: print(a,b,c,d)
Kun suoritamme ohjelman, se listaa meille kaikki ehdot täyttävät koodit:
1 2 1 9 1 3 1 8 1 4 1 7 1 5 1 6 1 6 1 5 1 7 1 4 1 8 1 3 1 9 1 2 2 1 2 8 2 2 2 7 2 3 2 6 2 4 2 5 2 5 2 4 2 6 2 3 2 7 2 2 2 8 2 1 3 1 3 6 3 2 3 5 3 3 3 4 3 4 3 3 3 5 3 2 3 6 3 1 4 1 4 4 4 2 4 3 4 3 4 2 4 4 4 1 5 1 5 2 5 2 5 1
Voimme toteuttaa myös ohjelman niin, että se vain laskee, montako ehdot täyttävää koodia on olemassa, eikä tulosta niitä kaikkia. Saamme tämän aikaan näin:
s = 0 for a in range(1,10): for b in range(1,10): for c in range(1,10): for d in range(1,10): if a == c and a+b+c+d == 13: s += 1 print(s)
Nyt ohjelman tulostus on seuraava:
28
Meidän riittää siis kokeilla 28 koodia, jotta löydämme varmasti oikean koodin.
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
Kun c:n yläraja on 20, on olemassa 6 Pythagoraan kolmikkoa. Nämä ovat (3,4,5), (5,12,13), (6,8,10), (8,15,17), (9,12,15) ja (12,16,20). Montako Pythagoraan kolmikkoa on olemassa, kun c:n yläraja on 50?
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän: