Keresés

Hirdetés

Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz Karma #627 üzenetére

    Köszönöm!

    Így azért már más a megoldás, hiszen a feladat szerint nem lehet egyszerre beolvasni a teljes fájlt. Ebben az esetben az első 2 példa továbbra is érvényes, a harmadiktól kezdve más megközelítés szükséges. Én összevonnám a feladatokat, hogy a fájlt csak egyszer kelljen megnyitni és iterálni benne. Remélem nem maradt ki semmi, nem futtattam le a kódot:

    with open("kiserlet.txt", "r") as f:

    fej_db = 0 # Fejek száma
    iras_db = 0 # Írások száma
    dupla_db = 0 # A pontosan két egymást követő fejek száma

    csakfej = 0 # A csak fejekből álló sorozat aktuális hossza
    csakfej_max = 0 # A csak fejekből álló sorozat maximális hossza

    # A legutóbbi három dobás tárolása
    e1, e2, e3 = None, None, None

    # Szépen soronként végiglépdelünk a fájlon
    for line in f:
    line = line.strip('\n')

    if line == 'F':
    fej_db += 1

    # Számolás a 6. feladathoz
    csakfej += 1
    csakfej_max = max(csakfej_max, csakfej)

    if line == 'I':
    iras_db += 1

    # Számolás a 6. feladathoz
    csakfej_max = max(csakfej_max, csakfej)
    csakfej = 0

    # Számolás az 5. feladathoz
    if line == 'I' and e1 == 'F' and e2 == 'F' and e3 == 'I':
    dupla_db += 1

    # Eltároljuk a legutóbbi dobásokat
    e1, e2, e3 = line, e1, e2


    # 3. feladat: Az összes dobás száma a fejek és írások összege
    ossz_db = fej_db + iras_db
    print('A dobások száma: {}'.format(ossz_db))

    # 4. feladat
    print('A fejek relatív gyakorisága: {:.2%}'.format(fej_db/ossz_db))

    # 5.feladat
    print('A dupla fejek száma: {}'.format(dupla_db))

    # 6. feladat
    print('A leghosszabb fej-sorozat: {} dobás'.format(csakfej_max))

    [ Szerkesztve ]

    "We spared no expense"

Új hozzászólás Aktív témák