Aşağıdaki yordamla oluşturulabilecek sayıların permütasyonu olarak, başa ekli bir uzunluk dizisi tanımlayın :n1, 2, ..., n
Numara ile başlayın
1.- arasındaki her sayı
2içinn, bu sayıyı dizinin başına veya sonuna yerleştirin ( başlığın başına veya sonuna ekleyin , dolayısıyla dizinin adı).
Örneğin, bu, uzunluk 4'ün başına bir ek ekleme dizisi oluşturmanın geçerli bir yoludur:
1
21 [beginning]
213 [end]
2134 [end]
Göreviniz bir numara alacak bir program veya fonksiyon oluşturmaktır nden 3üzere 30girdi olarak ve yazdırabilir veya uzunluktaki tüm başa getirebilir-ekleme dizileri dönmek n9 temsil edilecek Yukarıdaki dizeleri ve değil listeler, sayılar çıktılıyorsanız (sözlük sırasını içinde a-udize uzunluğunu korumak için harf olarak ). Örneğin, bu sipariş şöyledir n = 4:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
Genel olarak, uzunluk olarak 2 n-1 başa ekli permütasyon vardır n.
Kodunuzda kendi dilinizde yerleşik bir sıralama işlevi kullanamazsınız. Bunu herhangi bir dilde yapmak için en kısa program kazanır.
a-u. Sadece sayı listelerini çıkarabilir miyiz?