Autorské riešenie
Na vyriešenie tejto úlohy bolo nutné vytvoriť všetky možné kombinácie z dvoch zadaných vstupných génov. Každý vstupný gén mal 2 zložky. Každá zložka bola buď číslo 1 alebo čislo 0. Riešenie teda záviselo aj od toho, aký spôsob zadávania vstupných parametrov sme si zvolili. Vstup mohli byť 4 čísla, dvojice čísel či dvojprvkové zoznamy. Najprehľadnejšie je riešenie s použitím dvoch 2-prvkových zoznamov, ale aj ostatné prístupy sú samozrejme správne. V prvom rade, a to platí pre akýkoľvek typ vstupu, platí nasledujúci vzťah:
Nech naše vstupy teda sú 2 zoznamy: genM a genO. Vzhľadom na predchádzajúci vzťah nám stačí použiť 2 cykly, pomocou ktorých prejdeme oboma zoznamami a spočítame súčet pre jednotlivé kombinácie.
;Imagine
logo
viem zistiFarbu :genM :genO prePrvky "m :genM [ prePrvky "o :genO [ akJe :m + :o [ 0 [zo "zelena] 1 [zo "modra] 2 [zo "modrozelena] ] ] ] koniec
#Python def zistiFarbu(genM, genO): ''' Funkcia vypise vsetky mozne farby panciera korytnacky, ak jej rodicia maju farby genM, genO :param genM: 2-prvkovy zoznam farieb korytnacej mamy obsahujuci prvky z mnoziny {0,1}, 0=zelena, 1=modra :type genM: list :param genO: 2-prvkovy zoznam farieb korytnacieho otca obsahujuci prvky z mnoziny {0,1}, 0=zelena, 1=modra :type genO: list :return: None ''' for i in genM: for j in genO: if i + j == 0: print("zelena") elif i + j == 1: print("modrozelena") else: print("modra") if __name__ == "__main__": print("Farby: 0=zelena, 1=modra") genM = input("zadaj farby korytnacej mamy, napr: 1,0: ") genM = [int(x) for x in genM.split(",")] genO = input("zadaj farby korytnacieho otca, napr: 1,0: ") genO = [int(x) for x in genO.split(",")] zistiFarbu(genM, genO) Vaše zaujímavé riešenia a najčastejšie chyby Častá chyba, ktorá sa vyskytovala bolo nesprávne pochopenie zadanie. Miesto 2 génov s 2 časťami, ste ako vstup očakávali už dané časti génov rodičov a na základe nich ste vypísali farbu. Viacerí sa taktiež ani nepokúsili nad úlohou pouvažovať, ale krvopotne vypísali všetky kombinácie, ktoré môžu nastať. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |