эффективно сделать перестановку xs, так, чтобы она однозначно определялась числом p и при этом при соседних числах перестановки были не похожи друг на друга?
Не натуральное, а по модулю пойдет?
а что значит "не похожи"?
лучше конечно не список, а массив
можно разбить задачу на две части: 1. эффективно получить энную перестановку. Data.List.permutations ленивенькая, так что в зависимости от юз кейза может и тупо permutations xs !! n прокатит 2. превратить n в какое-то "непохожее" на n число. Например можно сделать из n 1/n в Z/p
Обсуждают сегодня