code-neon

Python ile Permütasyon Bulma

Kullanıcının girdiği sayı dizisinin tüm olası permütasyonlarını bulan Python programı.

def find_permutations(numbers):
    permutations = []
    current_perm = []  
    used = [False] * len(numbers)  
    generate_permutations(numbers, current_perm, used, permutations)
    return permutations

def generate_permutations(numbers, current_perm, used, permutations):
    if len(current_perm) == len(numbers):
        permutations.append(list(current_perm))  
        return
    for i in range(len(numbers)):
        if not used[i]:  
            used[i] = True  
            current_perm.append(numbers[i])  
            generate_permutations(numbers, current_perm, used, permutations)
            current_perm.pop()  
            used[i] = False  

if __name__ == "__main__":
    input_str = input("Sayıları virgülle ayırarak girin: ")
    numbers = [int(s.strip()) for s in input_str.split(',')]  

    all_permutations = find_permutations(numbers)

    print("Tüm permütasyonlar:")
    for perm in all_permutations:
        print(', '.join(map(str, perm)))

Python ile Verilen sayı dizisinin permütasyonlarını bulan fonksiyon.

def find_permutations(numbers):
    permutations = []
    current_perm = []  # Mevcut permütasyonu temsil eden liste
    used = [False] * len(numbers)  # Sayıların kullanılıp kullanılmadığını tutan liste
    generate_permutations(numbers, current_perm, used, permutations)
    return permutations

Python ile Tüm permütasyonları oluşturmak için geri izlemeli fonksiyon.

def generate_permutations(numbers, current_perm, used, permutations):
    if len(current_perm) == len(numbers):
        permutations.append(list(current_perm))  # Mevcut permütasyonu sonuç listesine ekle
        return
    for i in range(len(numbers)):
        if not used[i]:  # Sayı daha önce kullanılmadıysa
            used[i] = True  # Sayıyı kullanıldı olarak işaretle
            current_perm.append(numbers[i])  # Sayıyı mevcut permütasyona ekle
            generate_permutations(numbers, current_perm, used, permutations)
            current_perm.pop()  # Son eklenen sayıyı çıkar ve diğer olasılıkları denemek için geri dön
            used[i] = False  # Sayının kullanım durumunu geri al

Python ile Kullanıcıdan virgülle ayrılarak girilen sayıları al.

if __name__ == "__main__":
    input_str = input("Sayıları virgülle ayırarak girin: ")
    numbers = [int(s.strip()) for s in input_str.split(',')]  # Girdiyi integer listesine dönüştür.

Python ile Permütasyonları bulan fonksiyonu çağır.

    all_permutations = find_permutations(numbers)

Python ile Tüm permütasyonları ekrana yazdır.

    print("Tüm permütasyonlar:")
    for perm in all_permutations:
        print(', '.join(map(str, perm)))