Начиная с 1-TET, дайте равные темпераменты, которые лучше и лучше приближаются к идеальной пятой (просто соотношение 3/2). ( Последовательность OEIS A060528 )
Формальное описание последовательности, скопированное из OEIS:
Список равных темпераментов (равных делений октавы), ближайшие шаги шкалы которых все ближе и ближе приближаются к соотношениям двух тонов музыкальной гармонии: идеального 4-го, 4/3 и его дополнения к идеальному 5-му, 3/2.
Обратите внимание, что по симметрии идеальный четвертый не имеет значения.
Допустим, мы знаем, что 3 в последовательности. Частоты в 3-ТЕТ:
2^0, 2^⅓, 2^⅔
Где 2^⅔
ближайшее логарифмическое приближение 3/2
.
4 в последовательности? Частоты в 4-ТЕТ:
2^0, 2^¼, 2^½, 2^¾
Где 2^½
находится ближайшее приближение 3/2
. Это не лучше, чем 2^⅔
4, поэтому не в последовательности.
Аналогичным способом мы подтверждаем, что 5 находится в последовательности, и так далее.
Когда в n
качестве входных данных задано целое число , выходные данные должны быть по порядку первыми N числами последовательности. Например, когда n = 7
результат должен быть:
1 2 3 5 7 12 29
Описание последовательности от xnor
Иррациональная константа может быть аппроксимирована последовательностью рациональных дробей
Фракция включается в последовательность, если она является новой ближайшей по абсолютному расстояниюто есть ближе, чем любая другая дробь с меньшим или равным знаменателем.
Ваша цель - вывести первые знаменателей по порядку. Это последовательность A060528 ( таблица ). Числители (не обязательно) даны в A254351 ( таблица )
Правила:
- Не импортируйте последовательность A060528 напрямую.
Формат не имеет значения, пока цифры различимы. В приведенном выше примере выходные данные также могут быть:
[1,2,3,5,7,12,29]
Поскольку это код-гольф, выигрывает самый короткий код в байтах.
источник
Ответы:
05AB1E ,
1918 байтПопробуйте онлайн!
источник
Wolfram Language (Mathematica) ,
6260 байтПопробуйте онлайн!
источник
JavaScript (V8) ,
818078 байт-2 байта спасибо Арнаулду!
Попробуйте онлайн!
источник
Python 2 , 92 байта
Попробуйте онлайн!
Использует константу2журнал2( 3 ) , Я не был уверен, сколько цифр точности требуется, поскольку неточность в конечном итоге нарушит последовательность, поэтому я использовал полную точность с плавающей точкой
3.169925001442312
для2 * numpy.log2(3)
.источник
..., 665, (1995), (4655), 8286, ...
попробуйте онлайн!2 * numpy.log2(3)
вместо полностью прописанного числа? (Или даже лучшеnumpy.log2(9)
)from numpy import*
иlog2(9)
.package::function
без предварительной загрузкиpackage
!Чисто ,
128111108 байтПопробуйте онлайн!
Должен работать до пределов
Real
64-битного типа с двойной точностью.источник
MATL ,
2725 байтПопробуйте онлайн!
объяснение
источник
Perl 5 (
-MPOSIX=log2 -M5.01 -n
),73,78, 71 байтИсправлено после комментария, может быть улучшено ...
-7 байт благодаря Грими
Попробуйте онлайн!
источник