Показать сообщение отдельно
Старый 15.09.2008, 17:18   #2  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от belugin Посмотреть сообщение
http://www.codeplex.com/IronPython
X++:
import operator
def permutationStep(xs, i):
    rests = permutations(xs[:i] + xs[i+1:])  
    return map(lambda x:[xs[i]] + x, rests)
def sumLists(lists):
    return reduce(operator.add, lists, [])
def permutations(xs):
    if xs == []:
       return [[]]    
    return sumLists(map(lambda x: permutationStep(xs, x), range(len(xs)) ))
print permutations([1, 2])
print permutations([1, 2, 3])
[[1, 2], [2, 1]]
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

Только так не честно, наверное
Ну вообщем-то да... Подразумевалось использование стандартных циклов, типов данных и операторов. Допускается использовать только простейшие математические функции типа возведение в степень, извлечение корня и т.д.