Zaczynając od 1-TET, dawaj równe temperamenty, które mają coraz lepsze przybliżenie idealnej piątej (tylko stosunek 3/2). ( Sekwencja OEIS A060528 )
Formalny opis sekwencji, skopiowany z OEIS:
Lista równych temperamentów (równe podziały oktawy), których najbliższe kroki skali są coraz bliższe stosunkom dwóch tonów muzycznej harmonii: idealnej 4., 4/3 i jej uzupełnienia idealnej 5., 3/2.
Zauważ, że dzięki symetrii idealny czwarty nie ma znaczenia.
Powiedzmy, że wiemy, że 3 jest w sekwencji. Częstotliwości w 3-TET to:
2^0, 2^⅓, 2^⅔
Gdzie 2^⅔
jest najbliższe logarytmiczne przybliżenie 3/2
.
Czy 4 w sekwencji? Częstotliwości w 4-TET to:
2^0, 2^¼, 2^½, 2^¾
Gdzie 2^½
jest najbliższe przybliżenie 3/2
. Nie jest to lepsze niż 2^⅔
, więc 4 nie ma w sekwencji.
Podobną metodą potwierdzamy, że 5 jest w sekwencji i tak dalej.
Gdy podana jest liczba całkowita n
jako dane wejściowe, wyjściem musi być pierwsze N liczb w sekwencji w kolejności. Na przykład, kiedy n = 7
dane wyjściowe powinny być:
1 2 3 5 7 12 29
Opis sekwencji według xnor
Stałą irracjonalną można aproksymować sekwencją ułamków wymiernych
Ułamek jest zawarty w sekwencji, jeśli jest to nowy najbliższy według odległości bezwzględnej, czyli bliżej niż jakakolwiek inna frakcja o mniejszym lub równym mianowniku.
Twoim celem jest wyprowadzenie pierwszych mianowników w kolejności. Są to sekwencje A060528 ( tabela ). Liczniki ( nie wymagane) są podane przez A254351 ( tabela )
Zasady:
- Nie importuj bezpośrednio sekwencji A060528.
Format nie ma znaczenia, dopóki liczby są rozróżnialne. W powyższym przykładzie dane wyjściowe mogą być również:
[1,2,3,5,7,12,29]
Ponieważ jest to golfowy kod, wygrywa najkrótszy kod w bajtach.
źródło
Odpowiedzi:
05AB1E ,
1918 bajtówWypróbuj online!
źródło
Wolfram Language (Mathematica) ,
6260 bajtówWypróbuj online!
źródło
JavaScript (V8) ,
818078 bajtów-2 bajty dzięki Arnauld!
Wypróbuj online!
źródło
Python 2 , 92 bajty
Wypróbuj online!
Wykorzystuje stałą2)log2)( 3 ) . Nie byłem pewien, ile cyfr dokładności jest wymaganych, ponieważ niedokładność ostatecznie złamie sekwencję, więc użyłem pełnej precyzji zmiennoprzecinkowej
3.169925001442312
dla2 * numpy.log2(3)
.źródło
..., 665, (1995), (4655), 8286, ...
Wypróbuj online!2 * numpy.log2(3)
niż pełna liczba? (Lub nawet lepiejnumpy.log2(9)
)from numpy import*
ilog2(9)
.package::function
bez ładowaniapackage
najpierw!Czysty ,
128111108 bajtówWypróbuj online!
Powinien działać do granic
Real
64-bitowego typu podwójnej precyzji.źródło
MATL ,
2725 bajtówWypróbuj online!
Wyjaśnienie
źródło
Perl 5 (
-MPOSIX=log2 -M5.01 -n
),73,78, 71 bajtówNaprawiono następujący komentarz, można poprawić ...
-7 bajtów dzięki Grimy
Wypróbuj online!
źródło