RSS лента

Обличай блудню еретическую

Обратная функция для Olorulus'а - кто сможет? :)

Оценить эту запись
              
Это для математиков и/или программистов. В связи с тем, что я написал тут: http://www.forumklassika.ru/showpost...5&postcount=80

Итак, кто способен решить следующую задачу - найти "обратную функцию", которую я там упомянул.

Точная формулировка задачи. Используя целые константы, четыре арифм. действия, а также операции возведения в степень и вычисления остатка от деления написать формулу f(i), которая для порядковых номеров клависов (ступеней) обычной белоклавишной диатоники (считая от C=0, т.е. C=0, D=1, E=2 и т.д.) вычисляет количество квинтовых шагов до соотв. ступени, считая от C: т.е. f(0)=0 (C), f(1) = 2 (D), f(2) = 4 (E), f(3) = -1 (F) и т.п.

Функция НЕ должна быть интерполяционным многочленом, типа Лагранжа (это-то тривиально, понятно).

Призов не будет, но всё равно .

Отправить "Обратная функция для Olorulus'а - кто сможет? :)" в Google Отправить "Обратная функция для Olorulus'а - кто сможет? :)" в Facebook Отправить "Обратная функция для Olorulus'а - кто сможет? :)" в Twitter Отправить "Обратная функция для Olorulus'а - кто сможет? :)" в del.icio.us Отправить "Обратная функция для Olorulus'а - кто сможет? :)" в Digg Отправить "Обратная функция для Olorulus'а - кто сможет? :)" в StumbleUpon

Комментарии

  1. Аватар для MMMXXX
    f = ((x * 2 + 2) MOD 7) - 2

    где MOD - это целочисленное деление, в данном случае в семеричной системе счисления.
    Например при x = 3:
    6 + 2 = 11 (в семеричной системе счисления.)
    11 MOD 7 = 1
    и т. д.
  2. Аватар для mitka
    Цитата Сообщение от MMMXXX
    f = ((x * 2 + 2) MOD 7) - 2

    где MOD - это целочисленное деление, в данном случае в семеричной системе счисления.
    Например при x = 3:
    6 + 2 = 11 (в семеричной системе счисления.)
    11 MOD 7 = 1
    и т. д.
    чо-то си не выходит, вроде в си бемоль прёт (вниз от фа) -2.

    предлагаю фикс:

    f = ( (x*2 + 2)mod7 ) - 2 + (x+1 - (x+1)mod7)

    Интересно, что эта формула работает и за пределами "белых клавиш", если продолжить нумерацию вверх соотв. "диезами", вниз - "бемолями", например, формула дает правильное значение 6 для фа диез (х=10), 7 для до диез (х=7, т.е. "следующая" за си), -3 для ми бемоль (х=-5) и-4 для ля бемоль (х=-2). И т.д.
    Обновлено 07.09.2009 в 09:32 mitka (добавил фикс и интересно)
  3. Аватар для ingapinga
    ой я ... (икает)
  4. Аватар для Sarastro
    Формула может и работать, но является ли она обратной функцией? Или нужна любая функция, решающая задачу?
  5. Аватар для mitka
    цобсно,

    f(i) = (2i+1)mod7 - 1

    тогда только по белым клавишам идет
  6. Аватар для MMMXXX
    Цитата Сообщение от mitka
    цобсно,

    f(i) = (2i+1)mod7 - 1

    тогда только по белым клавишам идет

    Для хроматики надо будет mod12 и номера нот будут другие.
    Как-то так:
    f(i) = (7i)mod12
    где система счисления 12-ричная, а ноты
    с = 0, с# = 1, d = 2 и т. д.
  7. Аватар для jevlampij
    Пужают девушек тут...
  8. Аватар для Ge.org
    Евлампий, вот видите, не любит иной народ ритма да метра. А к ладу тянется.
  9. Аватар для mari7
    Эка-бека ЗАУМЬ?А приятно...

Трекбэков

Яндекс.Метрика Rambler's Top100