Как Fannkuch работает?

Я испытываю затруднения при понимании инструкций реализации Fannkuch. Инструкции: http://www.haskell.org/haskellwiki/Shootout/Fannkuch

После шага "Количество количество зеркальных отражений, здесь 5". я потерян.

7
задан Eli Bendersky 4 March 2010 в 04:41
поделиться

2 ответа

Ого, да, это не самое лучшее описание алгоритма :).

Моя интерпретация такова, что они хотят, чтобы вы сделали следующее:

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;
}
5
ответ дан 7 December 2019 в 16:41
поделиться

См. Benchmarks Game - Fannkuch

Требование распечатать первые 30 перестановок было простым способом ограничить допустимые изменения, которые можно было внести в алгоритм.

-2
ответ дан 7 December 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: