Random sayı üretirken nasıl çıkan sayıları birbirinden farklı yapabilirim

import random

listone=list(range(1,50))
for i in range(6):
xl=random.choice(listone)
print(xl)
random.shuffle(listone)

böyle başladım lakin 1-2 kere çalıştırınca farkettim biribiryle aynı sayılar çıkıyor nasıl çözebilirim bu sorunu

Seçilmiş olan sayıları bir listede toplarsınız. Ve yeni seçilen değer bu listede yoksa ekrana yazdırırsınız. Eğer değer listedeyse işlem yapılmaz.

import random

listone = list(range(1, 50))
kullanilmis = []
i = 0
while i < 6:
    xl = random.choice(listone)
    if xl not in kullanilmis:
        kullanilmis.append(xl)
        print(xl)
        i += 1
        random.shuffle(listone)
1 Beğeni

https://docs.python.org/3/library/random.html#random.sample

2 Beğeni

Bir fonksiyon içerisinde yaptım. Ve program her koştuğunda farklı sayı üretti.

def farkli_sayi_uret():

    import random as rnd

    sayi_uret = rnd.randint(1,50)

    print("Üretilen sayı {}".format(sayi_uret))

farkli_sayi_uret()

Ama bu geçerli bir yöntem değil. Denemeleriniz boyunca her seferinde farklı sayı almış olmanız, her zaman farklı sayılar üretileceği anlamına gelmiyor.

Evet bir üst satırdaki kodlar daha mantıklı. Bu kodlar ile ilgili bir sorum olucaktı. Mesela çok fazla koşturduk ve 1 ile 50 arasındaki tüm sayılar çıktı olarak alındı. Tekrar çalıştırdığımızda herşey kullanılmış olacağı için bize ne verir çıktı olarak ?

Calistir ve gor?

Program ne cikti verirse versin yanlis olacak cunku sorunun dogru bir cevabi yok.

2 Beğeni

random.randint fonksiyonu rastgele sayılar üretiyor, tekrar etmeyen sayılar değil. Ayrıca ortada kullanılan/tüketilen bir şey yok.