Sinulla on korttipelissä kädessä tietyt kortit ja sinun tulisi löytää korttien yhdistelmä, jonka summa on haluttu. Montako tällaista yhdistelmää korteista voi muodostaa?
Tässä tehtävässä kortit esitetään lukujen listana. Esimerkiksi lista [2,1,4,6] tarkoittaa, että kädessä on neljä korttia, joiden arvot ovat 2, 1, 4 ja 6. Korttien mailla (esim. risti) ei ole merkitystä tehtävässä.
Esimerkiksi kun kortit ovat [2,1,4,6] ja haluttu summa on 6, tällainen yhdistelmä voidaan muodostaa kahdella tavalla. Yksi tapa on valita kortit 2 ja 4, ja toinen tapa on valita pelkkä kortti 6.
Toteuta tiedostoon cardgame.py
funktio count_combinations
, jolle annetaan parametrina korttien arvot listana ja haluttu summa. Funktion tulee palauttaa yhdistelmien määrä.
Voit olettaa, että korttien määrä on välillä 1 \dots 10. Funktion tulee toimia tehokkaasti kaikissa tällaisissa tapauksissa.
def count_combinations(cards, target): # TODO if __name__ == "__main__": print(count_combinations([2, 1, 4, 6], 6)) # 2 print(count_combinations([1, 1, 1, 1], 2)) # 6 print(count_combinations([2, 1, 4, 6], 15)) # 0 print(count_combinations([1], 1)) # 1 print(count_combinations([1, 2, 3, 4, 5], 5)) # 3 print(count_combinations([1, 1, 4, 1, 1], 4)) # 2 print(count_combinations([1] * 10, 5)) # 252