0/10测试用例通过。
这里是挑战说明:
((为了保持格式美观-我将说明放入粘贴容器中)挑战说明链接:https://pastebin.com/UQM4Hip9
这是我的试用代码-PYTHON-(通过了0/10个测试用例)
from math import factorial
from collections import Counter
from fractions import gcd
def cycle_count(c, n):
cc=factorial(n)
for a, b in Counter(c).items():
cc//=(a**b)*factorial(b)
return cc
def cycle_partitions(n, i=1):
yield [n]
for i in range(i, n//2 + 1):
for p in cycle_partitions(n-i, i):
yield [i] + p
def solution(w, h, s):
grid=0
for cpw in cycle_partitions(w):
for cph in cycle_partitions(h):
m=cycle_count(cpw, w)*cycle_count(cph, h)
grid+=m*(s**sum([sum([gcd(i, j) for i in cpw]) for j in cph]))
return grid//(factorial(w)*factorial(h))
print(solution(2, 2, 2)) #Outputs 7
此代码在我的计算机上的python编译器中有效,但在foobar挑战中不起作用?
我会失去准确性吗?
@@ Joachim Lusiardi,您的解决方案无效。停止垃圾邮件堆栈溢出。
报告此用户:@Joachim Lusiardi
您可以在此处提交报告:https://meta.stackexchange.com/contact
不帮助
只是一个猜测:函数返回值的类型错误? str vs. int?
改进的答案
首先对“值的类型”进行更详细的说明:
在python中,如果不必声明类型,则也会键入值。例如:
>>> i = 7
>>> s = '7'
>>> print(i, s, type(i), type(s), i == s)
7 7 <class 'int'> <class 'str'> False
我不知道应用于代码的确切测试,但是通常这些测试涉及使用==
进行的相等测试。如果期望值的类型与返回的那些值不匹配,则相等失败。也许Elegant ways to support equivalence ("equality") in Python classes会有所帮助。
挑战的指令(请参阅pastebin)也明确提到了预期的返回类型:返回的值必须是字符串(请参阅第41/47行)。
此外,该指令还指出,应该“编写一个函数答案(w,h,s)”(第6行)。发布的解决方案实现功能solution
。