пним чином. Беруться списки нот кожній мелодії, здійснюється приведення до тональності однієї з мелодій (лінійний зсув номерів нот на значення однакову різниці між початковими нотами мелодій, з яких починається порівняння, істотно, якщо мелодії мають різну кількість зіграних нот), числові значення перетворюються у рядки, і обчислюється відстань Левенштейна. Якщо кількість нот різному, n - кількість нот в першій мелодії, m - кількість нот у другій мелодії, причому n> m, то кількість значень відстані Левенштейна буде дорівнювати n-m +1 - кількість можливих варіантів порівняння. У цьому випадку буде вибиратися мінімум з відстаней Левенштейна. Визначається процентне співвідношення, обчислене за формулою:
В
де L - мінімум з можливих відстаней Левенштейна, а Ml - найменша кількість нот, вибране з порівнюваних мелодій.
Алгоритм порівняння з урахуванням тактів.
Для порівняння мелодій з урахуванням тактів додатково буде потрібно знати, номер такту, в якому зіграна конкретна нота. Беруться списки нот кожній мелодії, здійснюється приведення до тональності однієї з мелодій (лінійний зсув номерів нот на значення однакову різниці між початковими нотами мелодій, з яких починається порівняння, істотно, якщо мелодії мають різну кількість зіграних нот). Потім відбувається розбиття списку нот на такти, і вже на основі кожного такту здійснюється перетворення в окремі рядки (окремий такт - окремий рядок). Послідовно обчислюється відстань Левенштейна між відповідними тактами, потім значення відстані для кожного такту сумуються. Можливих варіантів підсумованого відстані, так само як і при порівнянні без урахування тактів дорівнює n-m +1. У цьому випадку вибирається мінімум таких сум. Визначається процентне співвідношення, обчислене за формулою:
В
де L - мінімум з можливих відстаней Левенштейна, а Ml - найменша кількість нот, вибране з порівнюваних мелодій.
Користувачеві видається найбільше з процентних значень у вигляді окремого повідомлення. Після цього додаток готове здійснити порівняння наступних мелодій. p align="justify"> Фізичне розміщення класів по файлах виглядає наступним чином:
В
Рис. 13. Діаграма розміщень (ImplementationDiagram)
6. Тестування
Порівняння мелодії і її частини.
В
Рис. 14. Повний збіг
Порівняння коротких мелодій з додаванням зайвих нот.
В
Рис. 15. Повний збіг
Порівняння довгих мелодій з додаванням зайвих нот.
В
Рис. ...