日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶)

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于這個題,每個人看法不一樣,理解不一樣,當然程序也不一樣。

此題目中,我設置的機器與人都是隨機數

主要原理應該大致一樣

此題中,我們的要求,拿到最后一根火柴,則算輸。

拿到最后一根火柴則算輸,那么我們應該去讓人機取火柴盡可能的讓人最后取到一根火柴。

那么則可以從前面湊數,使之剩余的火柴湊成 m(剩余)= r(未知)*(n+1)+1

計算 m%(n+1)的余數 s ,進行判斷余數與第一次人的隨機數的大小值,

判斷余數 s 的值,s? 與 1的關系,s 與0 的關系

第一次隨機數為a有多種情況,比如:

1:a < s+1 ( 為什么 s+1 ,湊數 使之最后剩一根 )這種情況的話,我們機器則 取 b = s-a

使其剩余的根數湊成 ?m(剩余)= r(未知)*(n+1)+1

2: a = s+1 這種情況,

具體代碼如下:存在一些問題,當然沒發現的話那就算了, 可當參考,發現問題的歡迎指導,

from random import*

num = int(input("請輸入火柴的根數:"))

MAX = int(input("請輸入拿火柴最大的根數: "))

s = num % (MAX+1)

# noinspection PyStatementEffect

if s > 1:

a = randint(1,MAX)

num -= a

if a != s - 1:

if a < s:

b = s - a - 1

num -= b

else:

b = s + MAX - a

num -= b

print("人拿%d根火柴" % a, end=" ")

print("機器拿%d根火柴" % b, end=" ")

print("還剩下: %d根火柴" % num)

else:

print("")

while num > 0:

if num >= 4:

a = randint(1, MAX)

else:

a = num

num -= a

if num == 0:

print('game over')

break

b = MAX +1 - a

num -= b

print("人拿%d根火柴" % a, end=" ")

print("機器拿%d根火柴" % b, end=" ")

print("還剩下: %d根火柴" % num)

elif s == 0:

a = randint(1,MAX-1)

num -= a

b = MAX - a

num -= a

print("人拿%d根火柴" % a, end=" ")

print("機器拿%d根火柴" % b, end=" ")

print("還剩下: %d根火柴" % num)

while num > MAX:

if num >= 4:

a = randint(1, MAX)

else:

a = num

num -= a

if num == 0:

print('game over')

break

b = MAX +1 - a

num -= b

print("人拿%d根火柴" % a, end=" ")

print("機器拿%d根火柴" % b, end=" ")

print("還剩下: %d根火柴" % num)

else:

while num > 0:

if num >= 4:

a = randint(1, MAX)

else:

a = num

num -= a

if num == 0:

print('game over')

break

b = MAX +1 - a

num -= b

print("人拿%d根火柴" % a, end=" ")

print("機器拿%d根火柴" % b, end=" ")

print("還剩下: %d根火柴" % num)

總結

以上是生活随笔為你收集整理的取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。