我搞不清这个序列111100001100011001010

2024-04-26 07:02:12 发布

您现在位置:Python中文网/ 问答频道 /正文

注意:这是一个家庭作业,但我有问题的部分可以请求帮助。在

我必须在不使用开关或if语句的情况下编写一个序列111100001100011001010(我使用的是python),最多只能编写5个for和whiles。在

我已经把我的脚本安排好迭代了,我只是不知道算法是递归的还是显式的,更不用说元素是1的2还是4的=/

迄今为止,我们已经了解到,还没有方程或算法可以用来计算序列的算法。只是一套说明,一旦我们弄清楚了,就可以定义它。有人看到我丢失的模式了吗?在

编辑:我要找的是确定序列的算法。 即序列1,3,6,10,15将得到a[n]=(a[n-1]+n),其中n是序列的索引。这将是一个递归序列,因为它依赖于前一个元素的值或索引。在这种情况下,a[n-1]是指前一个索引的值。 另一个序列是2,4,6,8会得到一个[n]=(n*2),这是一个显式的序列,因为您只需要当前的索引或值。在

编辑:多亏了所有乐于助人的人的回复。。。。我真不敢相信我没看见


Tags: 脚本算法元素编辑forif定义模式
3条回答

这个问题有许多可能的解决办法。这是一个可重用的解决方案,它只需从4减到1,然后加上预期的1和0个数

使用的循环:1

def sequence(n):
    string = ""
    for i in range(n):
        string+='1'*(n-i)
        string+='0'*(n-i)
    return string

print sequence(4)

还有另一种更优雅、更具Python风格的单线条方式:

^{pr2}$

使用的循环数:1,代码行数:1

;)

你可以试试这个:

print ''.join(['1'*i+'0'*i for i in range(4,0,-1)]) 

注意这里有一个嵌套结构。在伪代码中(这样您就可以自己编写python了):

for i in 4 .. 1:
    for b in 1 .. 0:
         for j in 1 .. i:
            print b

相关问题 更多 >