Sobes.tech
Middle — Senior

Hogyan kezeljük a nullákat a listaelemek szorzásánál?

sobes.tech MI

Válasz az MI-től

Nullákat tartalmazó lista elemeinek szorzásakor fontos figyelembe venni, hogy legalább egy nullával az egész eredmény nullává válik. Ezeket az eseteket helyesen kezelhetjük:

  • Előzetesen ellenőrizhetjük a nullák jelenlétét. Ha nullát találunk, az eredmény azonnal 0.
  • Ha nullák nélkül kell kiszámítani a szorzatot, figyelmen kívül hagyhatjuk vagy külön számolhatjuk őket.
  • Olyan feladatoknál, ahol minden elem szorzatát kell ismerni a jelenlegi kivételével, használhatunk prefix- és suffix-szorzásokat, figyelembe véve a nullák számát.

Python példa, amely figyelembe veszi a nullákat:

from functools import reduce
from operator import mul

def product_with_zeros(lst):
    zero_count = lst.count(0)
    if zero_count > 1:
        return 0  # több nullával — a szorzat mindig 0
    elif zero_count == 1:
        # minden elem szorzata a nullán kívül
        prod = 1
        for x in lst:
            if x != 0:
                prod *= x
        return 0 if prod == 0 else 0  # a végső szorzat 0 lesz
    else:
        return reduce(mul, lst, 1)