Sulkulausekkeiden määrä voidaan laskea kurssimateriaalin tapojen lisäksi tehokkaasti kaavalla
\frac{1}{n/2+1}{n \choose n/2},
missä oletuksena on, että n on parillinen. Tässä {a \choose b} on binomikerroin, joka voidaan laskea kaavalla
\frac{a!}{b!(a-b)!}.
Esimerkiksi kun n=6, kaava antaa tuloksen
\frac{1}{6/2+1}{6 \choose 6/2}=\frac{20}{4}=5.
Toteuta tiedostoon formula.py
tähän kaavaan perustuva funktio count_sequences
, joka laskee sulkulausekkeiden määrän. Funktion tulee antaa oikea tulos tehokkaasti myös silloin, kun n on suuri.
def count_sequences(n): # TODO if __name__ == "__main__": print(count_sequences(1)) # 0 print(count_sequences(2)) # 1 print(count_sequences(3)) # 0 print(count_sequences(4)) # 2 print(count_sequences(5)) # 0 print(count_sequences(6)) # 5 print(count_sequences(42)) # 24466267020 print(count_sequences(1000)) # 539497486917039060909410566119711128734834348196703167679426896420410037336371644508208550747509720888947317534973145917768881736628103627844100238921194561723883202123256952806711505149177419849031086149939116975191706558395784192643914160118616272189452807591091542120727401415762287153293056320