Я застрял на моменте с 50% на 50%.
def shuffle(L):
listlen = int(len(L)/2)
B = L[:listlen]
C = L[listlen:]
D = []
[\code]
def shuffle(L):
listlen = int(len(L)/2)
B = L[:listlen]
C = L[listlen:]
D = []
[\code]
IskatelДа, там ошибка. Or - логический оператор который проверяет два операнда. Если хотя бы одно выражение будет истенным , то и выражение будет истенным.
ProPallЧто по твоему делает or?
IskatelДлина должна быть такая же как и у оригинального списка. То есть фактически код заменяет random.shuffle. Твоя идея с random.shuffle не подходит , ибо тогда каждый элемент результатирующего списка не будет иметь 50 процентый шанс быть из списка B , и 50 процентый шанс быть из списка C.
В условии подозрительно отсутствует длина результирующего списка. И классно ты подредактировал - то хоть был намек что элементы не должны повторяться, а теперь и его нет.ИМХО делай random.shuffle половинок, а потом выбери половину из B и половину из D и объедини.ЗЫ. что впринципе будет аналогично тому, что сделать random.shuffle для исходного списка, и выбрать половину… зачем на 2 делить?
ProPall
ибо тогда каждый элемент результатирующего списка не будет иметь 50 процентый шанс быть из списка B , и 50 процентый шанс быть из списка C.
IskatelЕсли сделать как предлогаешь ты то список будет на половину состоять только из значений из списка B а вторая половина только из значений из списка C. По заданию дано, что КАЖДОЕ значение имеет шанс быть из B или быть из С.
ProPall
Если сделать как предлогаешь ты то список будет на половину состоять только из значений из списка B а вторая половина только из значений из списка C. По заданию дано, что КАЖДОЕ значение имеет шанс быть из B или быть из С.
import random p = 0.5 # Можно поставить другое значение, например 0.3, тогда с вер. 0.3 будет выбор из C и 0.7 из B C = [1,2,3] B = [5,6,7,8] D = [] while C and B: if random.random() < p: D.append(C.pop()) else: D.append(B.pop())
scidamВозникли вопросы
Предполагается, что выбор осуществляется без возвращения, как только в одном из списков элементы иссякнут, выбор завершается