Potence

Potence

Avtor: Mojca Kerin

Besedilo naloge

Consider all integer combinations of for 2 ≤ a ≤ 5 and 2≤ b ≤ 5:

(MojcaKerin_potence3.png)

If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms: 4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125 How many distinct terms are in the sequence generated by for 2 ≤ a ≤ 100 and 2≤ b ≤ 100?

Opis problema in ideja rešitve

Naloga od nas zahteva, da preštejemo koliko elemnetov definiranih za 2 ≤ a ≤ 100 in 2≤ b ≤ 100, je različnih. Nalogo rešimo tako, da izračunamo vse te vrednosti in jih zapisujemo v nek niz. Če te vrednosti še ni v nizu, jo dodamo, če pa je že, je pač ne dodamo. Na koncu pogeldamo kaolikšna je dolžina tega niza. To je tudi rezultat naloge. Da bo metoda napisana nekoliko bolj splošna, bomo medoti dodali še dva parametra, privi bo določl ko katere vrednosti bo zavzel a, drugi pa katere vrednosti bo zavezl b. Spodnja meja pri vseh primerih bo 2.

Razlaga algoritma

Metodo začnemo z ukazom def , nato napišemo ime metode, ter v oklepaju parametre. Ustvarimo prazen seznam c , v katerega bomo shranjevali tista števila, ki jih še ni v seznamu. Nadaljujemo s for zanko (v navodilih piše , jaz pa sem uporabla ), ki nastvimo vrednost x, torej osnovi, naslednja for zanka pa nastavlja vrednosti potence. Za vsak x bo 'dobil' potenco, ki zavzema vrednsoti od 2 do b, kjer je b zgornja meja za vrednosti y. Nato postavimo stavek if. Prverjali bomo, če je element že v seznamu ali še ne. Torej if x**y not in c: . Če je pogoj izpolnjen, torej element še ni v seznamu c, ga dodamo v seznam c, se pravi: c.append(x**y) , v nasprotnem primeru ne storimo nič. Ker smo v seznam c dodajali sama različna števila, je rezultat naloge kar dolžina seznama c. Izračunamo jo s pomočjo ukaza len(c) (len, kot length). Zapišemo: retunrn len(c) .

Tako izgleda metoda, ko končamo njeno konstrukcijo.

(MojcaKerin_potence1.png)

Testni program

0%
0%