SingPath和Python帮助! - "创建问题集模式"中的无限循环错误

2024-04-29 01:16:29 发布

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

SingPath是一个交互式问题集网站,它跟踪你在多种编程语言中的进度。不幸的是它有一些错误。最大的错误是:

Your code took too long to return. Your solution may be stuck in an infinite loop. Please try again.

运行问题集代码时出现多次。现在,在回答问题集问题时,要纠正错误,只需重新运行代码。在

然而,在问题创造者内部,它产生了一个巨大的问题。实际上,您可以运行代码,直到它在creator中工作为止,这不是测试的问题。这个问题源于提交problem/solution,因为提交按钮会重新运行代码。这意味着你需要连续得到两个几乎不可能得到的正确答案(我已经试了一个小时了)。事实上,创造一个问题需要在问题集中继续下去,这个事实在buggy的创造者身上被彻底破坏了。在

所以(最后)我的问题是,如何使下面的代码在creator中不出现这个错误呢?在

代码:

import string
import random

# Takes a blank string then replaces it with 3 random letters/numbers.

def string3(s1):    
    s2 = ''
    def randstring (size = 3, chars = string.ascii_lowercase + string.digits):
       a = ''.join(random.choice(chars) for x in range(size))
       return a

    ''' If the string brought in isnot equal to the string generated keep
        rerunning the random string generator '''

    while s1 != s2:    
        s2 = randstring()

    return 'True'

函数调用示例:

^{pr2}$

准则的作用:

无限猴子定理指出

Given enough time, a hypothetical monkey typing at random would, as part of its output, almost surely produce all of Shakespeare's plays.

创建一个函数string3,它将随机生成3个字符的字符串,直到这些字符与从函数接收到的字符串相等为止。提示:搜索随机字符串生成器以供参考。字符串中的所有字符都是小写。在

我是一个初学者程序员,我想如果有一些意见,我可以理解更复杂的解决方案,虽然我会很感激任何帮助/建议!在

另外,我已经通知了SingPath的支持人员,但是我希望在今天得到尽可能多的练习!如果不可能修复客户端的错误,我完全理解!祝你好运!在

重要编辑

我忘了提到无论代码中的循环如何,都会发生这个bug。虽然我的程序非常紧张,不断随机分配字符,但我知道这不是问题所在(这可能是个问题,但不是问题XD)。如果你不相信我,试着在这里制造一个问题:http://singpath.appspot.com/

即使是简单的函数声明和返回,例如:

def add_one(n):
       return n+1

会导致循环错误!如果我能帮我做点什么(例外声明?)请告诉我!在


Tags: theto函数字符串代码inyourstring
3条回答

这不是一个错误或错误,这是一个设计决定。你正在做的是非常计算密集(见下面的解释),并且网站可能有一个有限的硬件预算。如果他们允许每个学生以他们想要的方式运行无限代码,那么这项业务将很快陷入困境。所以他们决定杀了你的代码。在

有27^n个可能的n个字符的单词由(英语)拉丁字母表的27个小写字符组成。这是一个很大的尝试,即使n只有3。此外,您是随机生成字符串的,因此不可避免地会重复一些字符串,您可能需要生成远远超过27^n的字符串才能找到要查找的字符串。在

这是一个很重要的教训-这是很容易白化的东西,需要一年的时间来完成。在

从最初的问题(作为答案发布):

After multiple attempts of letting the program run and then submitting I finally got lucky and it submitted my problem "Sir Monkey Shakespeare". Crappy name for a problem I know but it finally got the job done. If you are having the same bug try to remove any private tests as it will provide correct answers almost every time due to the lack of having to run the code again.

不管你怎么做你的代码都会变慢。我刚登录到那里,开始沿着Python路径前进,结果遇到了同样的错误,但计算量不高:

oops=317

这个网站似乎正遭受着太多流量的冲击。(在以前,我会说它们被斜线点着,但我想说它们被堆垛溢出会更正确。;)

相关问题 更多 >