Random modülü hakkında

diyelimki elimde iki tane isim var
ahmet ve mehmet ben bu isimleri ekrana rastgele bir biçimde yazdırmak istiyorum
fakat ahmet çıktısının oranı %45 mehmet çıktısının oranı %55 olarak ayarlamak istiyorum
böyle birşey mümkün müdür?
yardımcı olursanız sevinirim

1 Beğeni

Direkt düz mantık dalayım :smiley:

import random

namesPer = ["Ahmet", "Mehmet"]

names = ["Sinan", "Kenan", "Murat", "ELif", "Adnan", "Kemal"]

percent = random.randrange(0, 100)

for i in namesPer:

    if percent == 45:

        print(namesPer[0])

        break

    elif percent == 55:

        print(namesPer[1])

        break

    else:

        print(random.choice(names))

        break

Aslında liste içerisindeki eleman değerine göre de yapılabilir, yani iki liste tanımlamaya pek gerek yok gibi

Şu hesaplama kısmı sıkntı, üstatlar merak ettim bende

1 Beğeni
import random

names = ["Ahmet","Mehmet"]

for x in range(10): #10 kere dönsün

    percent = random.randrange(0, 100) #rastgele sayı gelsin

    if percent <= 45: #45'e eşit ve küçükse Ahmet

        print(names[0])

    else:#Değilse Mehmet yazsın

        print(names[1])
1 Beğeni

[0, 99] (100)

[0, 45] (46)

46%

Rastgele sayilarla calisirken [0, 1) araligini kullanmaya alisirsaniz rahat edersiniz. Karsilastirmalari da < (cunku her zaman <1) ve >= ile yapabilirsiniz.

if random.random() < .45 veya random.random() * 100 < 45

Ikiden fazla sey varsa random.choices is gorur.

1 Beğeni