Я испытываю затруднения при понимании инструкций реализации Fannkuch. Инструкции: http://www.haskell.org/haskellwiki/Shootout/Fannkuch
После шага "Количество количество зеркальных отражений, здесь 5". я потерян.
Ого, да, это не самое лучшее описание алгоритма :).
Моя интерпретация такова, что они хотят, чтобы вы сделали следующее:
fannkuch(n) { int maxFlips = 0, printCount = 0; foreach permutation p of [1..n] { maxFlips = max(maxFlips, flipCount(p)); if (printCount++ < 30) printPermutation(p); } print(maxFlips); } flipCount(p) { int count = 0; while (p[0] != 1) { reverse(p, p + p[0]); count++; } return count; }
См. Benchmarks Game - Fannkuch
Требование распечатать первые 30 перестановок было простым способом ограничить допустимые изменения, которые можно было внести в алгоритм.