Maximumkiválasztás

Eljutottunk az utolsó elemi programozási tételünkhöz, hát nem nagyszerű?:)

Lássuk:

A videóban ígértem egy prezentációt a karakterkódolásokról, hát íme: https://prezi.com/-h6xut8ieuos/karakterkodolasok-es-kodtablak/

És akkor a szokásos kódok. Következik a

Maximumkiválasztás:

Először pszeudokódban, általánosan:


sorozat = valamilyen lista, range, vagy más bejárható objektum

legnagyobb = olyan érték, aminél tutira van nagyobb a sorozat-ban

ciklus sorozat minden elem-ére
    ha az elem > legnagyobb:
        legnagyobb = elem
    elágazás vége
ciklus vége

Aztán Pythonban, értékek szerint bejárva a bejárható objektumot:

legnagyobb = olyan érték, aminél tutira van nagyobb a lista-ban</pre>

for elem in bejárható_objektum:
    if elem > legnagyobb:
        legnagyobb = elem
print(elem)

Indexek szerint bejárósat nem is írok, mert

  • mostanra te is meg tudod írni, ugye?
  • alig-alig kell

A Python egyszerűsítései:

  • maximumkiválasztáshoz egyszerű esetekben használhatod a max() függvényt
  • minimumkiválasztáshoz egyszerű esetekben használhatod a min() függvényt

Feladatok

F0026a: Vágd be a maximumkiválasztás tételét!

F0026b: Adott a -2, 8, 7, -12, -22, 19, -5, 4 sorozat. Melyik a legkisebb eleme? Melyik a legkisebb pozitív eleme? (Megoldás itt.)

F0026c: Határozzuk meg a fenti sorozat legnagyobb abszolútértékű elemét! (Megoldás itt.)

F0026d: Keressük meg a fenti sorozatban a legnagyobb összegű szomszédos elempárt! (Zsakó (szerk): Programozási feladatok, Kossuth, 1997 nyomán) (Megoldás itt.)

F0026e: Dobj fel egy kockát 10.000-szer! Melyik számot dobtad a legtöbbször? (Megoldás itt.)

F0026f: Az ['Elza', 'Melinda', 'Ferenc', 'Barbara', 'Vilma', 'Miklós', 'Ambrus', 'Mária', 'Natália', 'Judit', 'Árpád', 'Gabriella', 'Luca', 'Szilárda', 'Valér', 'Aletta', 'Lázár', 'Auguszta', 'Viola', 'Teofil', 'Tamás', 'Zénó', 'Viktória', 'Ádám', 'Eugénia', 'István', 'János', 'Kamilla', 'Tamara', 'Dávid', 'Szilveszter'] listából add meg a leghosszabb nevet! Ha több ilyen hosszúságú név is van, add meg mindet! (Megoldás itt.)

Legutóbb a megszámolás tételét néztük meg.

Maximumkiválasztás” bejegyzéshez 8ozzászólás

  1. Szia! Az baj, ha így csalok (az előzőek alapján)?:
    import random
    dobasok = []
    for _ in range(10000):
    dobasok.append(random.randint(1,6))
    lista = [(dobasok.count(1)), (dobasok.count(2)), (dobasok.count(3)), (dobasok.count(4)), (dobasok.count(5)), (dobasok.count(6))]
    print(lista)
    print(max(lista), ‘dobás volt a legtöbb, ebből a számból:’ , lista.index(max(lista))+1)

    Kedvelés

  2. Szia!
    Nem egyszerűbb, ha a maximum értéknek nem egy állandót, hanem rögtön a lista első elemét adjuk meg?
    Ez esetben mindegy, hogy max vagy min kiválasztás lesz.
    kiválasztás=számok[0]

    Kedvelés

    • Nem tűnik rossz ötletnek! Azon töröm a fejem, vajh’ miért nem így van a “hivatalos” tételben… De nem jövök rá.

      Kedvelés

  3. F0026c-hez egy másik megközelítés:
    sorozat =[ -2, 8, 7, -12, -22, 19, -5, 4 ]

    if abs(max(sorozat)) > abs(min(sorozat)):
    elem = max(sorozat)
    else:
    elem = min(sorozat)
    print(‘Legnagyobb abszoluterteku elem:’, elem)

    Kedvelés

  4. 0026d-hez:
    Egész hasonlóan oldottam meg, de a kezdeti maximumot a sorozat első két elemének választottam.
    Ez nem probléma, ugye?

    sorozat = [-2, 8, 7, -12, -22, 19, -5, 4]
    legnagyobb_par = sorozat[0] + sorozat[1]

    for i in range(1,len(sorozat)):
    teszt_par = sorozat[i-1] + sorozat[i]
    if teszt_par > legnagyobb_par:
    legnagyobb_par = teszt_par
    print(‘A legnagyobb osszegu szomszedos elemek:’,sorozat[i-1],’es’, sorozat[i],’osszege:’,legnagyobb_par)

    Kedvelés

  5. Megoldásom max nélkül, egy külön listával:

    számok = [-2, 8, 7, -12, -22, 19, -5, 4]
    pozitív_szám = 0
    pozitív_számok = []
    for szám in számok:
    if szám > 0:
    pozitív_szám = szám
    pozitív_számok.append(pozitív_szám)
    print(‘A legkissebb pozitív elem:’,min(pozitív_számok))

    Kedvelés

Hozzászólás