趣味编程思维 五

2022-05-18  本文已影响0人  Python_Camp
image.png

算法思路
逐对取大放在前面,循环执行直到组成一个数

# 递归

s = [4, 7, 5, 6, 8, 2, 1, 3]
def fusing(s,ans = []):
    step = len(s)

    while step > 1:
        for i in range(0,len(s),2):

            x,y = max(s[i],s[i+1]),min(s[i],s[i+1])
            ans.append(int(str(x) + str(y)))
        s = ans
        step /= 2
    if step == 1: return str(s[-1])[-1],str(s[-1])
    return fusing(ans)
print(fusing(s))

('5', '82317465')

算法规则下能够拼接得到最大数末尾是 5

image.png

num = f(n)

if n==1: return 1
if n==2: return 1+3
if n==3: return 1+3+3*3
。。。
f(n) = f(n-1) * 3 + 1

Python solve it recursion

def numCircles(n):
    if n == 1: return 1
    return numCircles(n - 1) * 3 + 1
n = 4
print(numCircles(n))

40

请挑战下题:


image.png

4、安全通过

你必须从A到B,但路上会有检查站。您可以绕过一些检查点,但不是所有的检查点,因为您只能从左到右进行。AB每个检查点都有一定的安全级别,只有至少有该级别的安全通行证的人才能通过它。所以级别为10的安全通行证会让你通过所有的检查点,而3的安全通行证只会让你通过3级的检查点。

image.png

从A到B需要的最低安全通行证级别是多少?


image.png

多米诺骨牌是一种矩形的骨牌,两端都写着一个数字。

你在用多米诺骨牌牌玩游戏。在它中,你尝试让三个或更多的多米诺骨牌端到端连接,数字与多米诺骨牌接触的地方匹配。下面的图表显示了3个和4个多米诺骨牌的多米诺骨牌循环。注意,多米诺骨牌可以倒过来,就像下面的第二个循环一样。每转一圈,你就从一堆东西中画一张新的多米诺骨牌。当你能够从迄今为止所有的多米诺骨牌中制作一个多米诺骨牌循环时,游戏就结束了。

image.png

例如,如果多米诺骨牌堆是[1:4] [2:6] [2:4] [1:6] [3:0],并且你从左到右画了多米诺骨牌,那么你可以在4个转向后完成游戏,如上图所示。对于下面的每一个多米诺骨牌堆,你需要多少个回合才能完成游戏,从左边画多米诺骨牌(第一排)?

image.png

6.六角形游戏洛基和Elle正在玩一个游戏,他们轮流移动一个六边形细胞的棋盘上。
游戏的规则是:
令牌可以移动到同一行中的相邻单元格,或者也可以移动到下面这一行中的相邻单元格。
不能将令牌移动到它以前已经打开的单元格上。

目的是让你的对手移动到底部(黑色)单元格。洛基是一个高水平的玩家,他允许Elle将令牌放置在上面四个阴影单元格中的任何一个上。如果艾尔打得很好,她可以在多少阴影单元格中放置标记,然后获胜,即使洛基打得很完美!

image.png

策略思路:
问题的本质是Ella首发的牌放在哪个阴影格子里,Ella稳赢?

上一篇 下一篇

猜你喜欢

热点阅读