Istanbul = ["a", "b", "c", "d"]

Ankara = ["A', "B", "C", "D", "E", "F", "G", "H"]

Iki liste var ve bu kisileri rastgele Ankara'dan iki kisi ve Istanbul'dan bir kisi olmak uzere nasil elestiririz?

Ornegin A grubunda "a", "D", "H" olsun ama bu kisiler baska gruplarda olmasin.

Tesekkurler

Edit: Python kullaniyorum

 

Hangi dilde yaptigina bagli biraz. Ama mantik olarak Istanbul listesini 2 kez, Ankara listesini de bir kez randomly shuffle edersin. Sonra Istanbul'un iki kez randomly shuffle edilmis hallerini birlestirip, Ankara'nin shuffle edilmis hali ile map edersin. Boylece Istanbul'daki her element icin Ankara'dan randomly iki element secmis olursun. Aslinda Ankara'yi shuffle etmen bile gerekli degil ama etmenin bir zarari da olmaz. Benim aklima gelen ilk yontem bu. Diline bagli olarak implementasyonu sana bagli.

Shuffle etmek icin de random number generator'lar kullanirsin. Diyelim ki RNG kullandigin dildeki random number generator olsun. Yapman gerekn soyle bir sey olur:

ist2= Istanbul(RNG(length(Istanbul)))

chunksia

listeleri shuffle et (karıştır)
istanbul'dan 1 ankara'dan iki kişi al ve o kişileri listelerden çıkar.
aynı işlemi 4 kez yap.

bu çözmez mi?

cedex

import random

ist = ['a', 'b', 'c', 'd']
ank = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

ist2 = ist + ist
random.shuffle(ist2)
random.shuffle(ank)

map_list = dict()

for i,item in enumerate(ist2):
if item in map_list:
map_list[item].append(ank[i])
else:
map_list[item] = [ank[i]]

Soyle bir outcome verir mesela:

>>> map_list
{'a': ['G', 'H'], 'c': ['F', 'A'], 'b': ['E', 'C'], 'd': ['B', 'D']}

NOT: indentation'a dikkat et :)

chunksia
1

mobil görünümden çık