Arama butonu
Bu konudaki kullanıcılar: 1 misafir
7
Cevap
450
Tıklama
0
Öne Çıkarma
Python ile ilgili yardim.
S
5 yıl
Onbaşı
Konu Sahibi

Python da yeniyim ve elimde soyle bir odev var..9 tane 3 farkli renkte topun oldugu bir posetten geri koymamak sartiyla uc top sececegim.bu islemi 100 defa tekrarlayacagim ve sonucta kac defa her 3 cekiste ayni renklerin geldigini bulmam gerekiyor.

sorunum var 12. toptan sonra(4. cu tekrardan itibaren diyeyim) kodun tekrar basa donmemesi..continue komutunu kullaniyorum ama ise yaramadi..yardim edebilecek olan varmi? ornegin ilk 3 cekiste ayni renk gelirse bu 1 sefer sayilacak..toplamda en az 100 cekis gerekiyor..kalantop=0 olduktan sonra tekrar toplari geri koyup islemi tekrarlayacagim..umarim anlatabilmisimdir



import random

toplar = [ "mavi","mavi","mavi","rod","rod","rod","gron","gron","gron"]

kalantop=9
ayni=0
farkli=0

for n in range(1,4):

cekis1= random.choice(toplar)
toplar.remove(cekis1)
kalantop=kalantop-1

cekis2= random.choice(toplar)
toplar.remove(cekis2)
kalantop=kalantop-1

cekis3= random.choice(toplar)
toplar.remove(cekis3)
kalantop=kalantop-1

if cekis1==cekis2==cekis3:
ayni=ayni+1

else:
farkli=farkli+1

print(ayni,farkli,cekis1,cekis2,cekis3,kalantop)

if kalantop==0:
print("hic top kalmadi")



M
5 yıl
Çavuş

yerinde olsam şöyle bi yol izlerdim.

for deneme_sayisi in range(0,100):
[tab] for n in range(1,4):
[tab][tab] içteki loop içinde top çekme işlemini yaparsın.


[tab] yeni denemeden önce torbayı tekrar doldur.

print(ayni)





< Bu mesaj bu kişi tarafından değiştirildi makmakmakxd -- 16 Kasım 2019; 22:16:3 >

S
5 yıl
Yüzbaşı

Soruyu anladım mı emin değilim:
3 top çekiyorum bu bir, 3 top daha çekiyorum bu iki, 3 top daha çekiyorum bu üç, top kalmadı, topları geri yerine koyuyorum, 3 top çekiyorum bu dört... 100'e kadar devam edecek.
böyle mi?



< Bu ileti mini sürüm kullanılarak atıldı >

S
5 yıl
Onbaşı
Konu Sahibi

Olasilik hesabiyla anlatsam belki daha anlaşılır olur.9 top var 1.sefer 3 top cekiyorum geri koymuyorum 2.sefer 3 top daha çekiyorum yine geri koymadan geri kalan 3 topu çekiyorum 3.seferde.. Hepsi bittiginde tekrar hepsini geri koyup ayni işlemi tekrarlıyorum. Bunu 100 defa tekrarlayacagim.. Bu 100 defada kac kere ayni renkleri bulurum. Sonra cikan sonucu normal olasılık hesabiyla karsilastiracagim



< Bu ileti mobil sürüm kullanılarak atıldı >

F
5 yıl
Yarbay

Her renkten eşit sayıda mı var poşette bunu anlamadım?



< Bu ileti mobil sürüm kullanılarak atıldı >

S
5 yıl
Yüzbaşı

İlk yazdığımı tekrar okur musun? dört dedğim yer doğru mu? yoksa orası daha ikinci tur mu oluyor?



< Bu ileti mini sürüm kullanılarak atıldı >

S
5 yıl
Yüzbaşı

Olasılıkta 9 toptan 3 çekiyosun, daha sonra çektiğin topları geri koymadan 6 toptan 3 çekiyosun... Böyle gidiyor ve farklı olasılıkları oluyor çünkü torbadaki renk sayısı değişiyor. İlk çekişte 1/3'ken oran, ikinci çekişte bu değişiyor. Ancak senin kodunda nasıl değişiyor onu anlamadım. Kalantop=9 deyip her çekişte azaltmışsın ancak bunun çekilen renklerle herhangi bir alakası yok.

Yani 3 mavi 3 yeşil 3 kırmızı varsa, ilk çekişten sonra ben neleri çektiysem o renklerden azaltmalıyım. Sen ise toplam top sayısını azaltıyorsun sadece. Doğru bir çözüm olmuyor yani.



S
5 yıl
Yüzbaşı

Ne yaptığımı anlatayım:
random kullanmadan önce seed() çağırmak lazım.
3 top aynı mı bulmak için set kullandım. bir set'e aynı elemanı ekleyemezsin, dolayısıyla add() hiçbir şey yapmaz. o halde 3 add() sonra set'in boyu 1 ise 3 top da aynıdır hesabıyla çözdüm. Ayrıca chioce() yerine randrange() metodu daha uygun geldi, yani direkt indexler üzerinden hareket ettim.
toplar listesi her boşaldığında tekrar atama yaptım (list comprehension kullandım, şart değil eğer zor gelirse)

import random

toplar = []
ayni = 0
random.seed()

for n in range(0, 100):
if not toplar:
toplar = [t for t in ['a', 'b', 'c'] for r in [1,2,3]]
cek = set()
for k in [1,2,3]:
top = random.randrange(len(toplar))
cek.add(toplar[top])
del toplar[top]
if len(cek) == 1:
ayni += 1

print("Toplam ayni renk sayisi: {}".format(ayni))





< Bu mesaj bu kişi tarafından değiştirildi seyfi84 -- 17 Kasım 2019; 11:26:10 >

< Bu ileti mini sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.