这是我的代码
daftar = ["K","H","S"]
kiri = daftar
kanan = []
petani = []
def kirikekanan():
global daftar, kiri, kanan, petani, naonweh
petani = list(next(naonweh))
kiri_sementara = list(set(kiri).difference(petani)) #mengurangkan isi himpunan yang ada di kiri dengan yg dibawa petani
if set(kiri_sementara) == {"K","H"} or set(kiri_sementara) == {"K","S"}:
kirikekanan()
else:
kiri = kiri_sementara
kanan = list(set(daftar).difference(kiri))
print("yang dibawa petani = {}, sehingga kiri = {}, kanan = {}y".format(petani, kiri, kanan))
def kanankekiri():
global daftar, kiri, kanan, petani, naonweh2
if set(kanan) == {"K","H"} or set(kanan) == {"K","S"}:
petani = list(next(naonweh2))
kanan = list(set(kanan).difference(petani))
kiri = list(set(daftar).difference(kanan))
print("yang dibawa petani = {}, sehingga kiri = {}, kanan = {}g".format(petani, kiri, kanan))
else:
petani = []
print("yang dibawa petani = {}, sehingga kiri = {}, kanan = {}g".format(petani, kiri, kanan))
while set(kanan) != set(daftar):
naonweh = iter(kiri)
naonweh2 = iter(kanan)
kirikekanan()
kanankekiri()
这是我想产生的结果:
但是如果我第二次或第三次运行此命令,则会得到不同的结果。这样会导致无限循环:
答案 0 :(得分:1)
删除您的if set(kanan) == {"K","H"} or set(kanan) == {"K","S"}:
中的设置。
if kanan == {"K","H"} or kanan == {"K","S"}:
petani = list(next(naonweh2))
kanan = list(set(kanan).difference(petani))
kiri = list(set(daftar).difference(kanan))
print("yang dibawa petani = {}, sehingga kiri = {}, kanan = {}g".format(petani, kiri, kanan))