[]

Kodlama bilenlere basit bir soru

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  (11.04.17 08:47:31 ~ 08:55:56) 
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  (11.04.17 08:56:19) 
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  (11.04.17 09:32:20 ~ 09:38:06) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.