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
会导致循环错误!如果我能帮我做点什么(例外声明?)请告诉我!在
这不是一个错误或错误,这是一个设计决定。你正在做的是非常计算密集(见下面的解释),并且网站可能有一个有限的硬件预算。如果他们允许每个学生以他们想要的方式运行无限代码,那么这项业务将很快陷入困境。所以他们决定杀了你的代码。在
有27^n个可能的n个字符的单词由(英语)拉丁字母表的27个小写字符组成。这是一个很大的尝试,即使n只有3。此外,您是随机生成字符串的,因此不可避免地会重复一些字符串,您可能需要生成远远超过27^n的字符串才能找到要查找的字符串。在
这是一个很重要的教训-这是很容易白化的东西,需要一年的时间来完成。在
从最初的问题(作为答案发布):
不管你怎么做你的代码都会变慢。我刚登录到那里,开始沿着Python路径前进,结果遇到了同样的错误,但计算量不高:
这个网站似乎正遭受着太多流量的冲击。(在以前,我会说它们被斜线点着,但我想说它们被堆垛溢出会更正确。;)
相关问题 更多 >
编程相关推荐