Sobes.tech
Middle — Senior

Jak zohlednit případy s nulami v součinu prvků seznamu?

sobes.tech AI

Odpověď od AI

Při výpočtu součinu prvků seznamu obsahujícího nuly je důležité vzít v úvahu, že přítomnost alespoň jedné nuly celý výsledek nuluje. Pro správné zpracování těchto případů lze:

  • Předem zkontrolovat přítomnost nul. Pokud je nalezena nula, je výsledek ihned 0.
  • Pokud je třeba vypočítat součin bez nul, lze je ignorovat nebo je počítat zvlášť.
  • Pro úlohy, kde je třeba znát součin všech prvků kromě aktuálního, lze použít přístup s prefixovými a suffixovými součiny, přičemž se zohlední počet nul.

Příklad v Pythonu, který zohledňuje nuly:

from functools import reduce
from operator import mul

def product_with_zeros(lst):
    zero_count = lst.count(0)
    if zero_count > 1:
        return 0  # více než jedna nula — součin je vždy 0
    elif zero_count == 1:
        # součin všech prvků kromě nuly
        prod = 1
        for x in lst:
            if x != 0:
                prod *= x
        return 0 if prod == 0 else 0  # konečný součin bude 0
    else:
        return reduce(mul, lst, 1)