我们都知道,元 是 满溢 与 投诉 约 进球 代码高尔夫 之间的 语言(是的,每个字是一个单独的链接,而这些可能是冰山的一角)。
由于对那些真正烦恼查找Pyth文档的人感到非常嫉妒,所以我认为有更多的建设性挑战会很不错,因为它适合于专门从事代码挑战的网站。
挑战非常简单。作为输入,我们具有语言名称和字节数。您可以将它们用作函数输入,也可以将它们用作stdin
语言的默认输入法。
作为输出,我们有一个更正的字节数,即您的残障分数。输出分别应为函数输出stdout
或您的语言默认输出方法。输出将四舍五入为整数,因为我们喜欢决胜局。
使用最丑陋,骇人听闻的查询(链接,随时可以清理它),我设法创建了一个数据集(包含.xslx,.ods和.csv的zip),其中包含有关代码高尔夫球问题的所有答案的快照。您可以使用此文件(并假设它是提供给你的程序,例如,它是在同一文件夹),或将此文件转换为另一种格式的常规(,,等等-但它可能只包含原始数据!)。名称应保持与 选择的扩展。.xls
.mat
.sav
QueryResults.ext
ext
现在为具体。对于每种语言,都有一个样板B
和详细度V
参数。它们可以一起用于创建语言的线性模型。我们n
是字节的实际数量,并且c
是修正得分。使用一个简单的模型n=Vc+B
,我们得到校正后的分数:
n-B
c = ---
V
很简单吧?现在,确定V
和B
。如您所料,我们将进行线性回归或更精确的最小二乘加权线性回归。我不打算对此进行详细说明-如果您不确定如何做到这一点,则Wikipedia是您的朋友,或者,如果您幸运,可以使用您语言的文档。
数据如下。每个数据点将是字节数n
和问题的平均字节数c
。为了计票,将对这些点加权,即按其票数加一(以计为0票)来称呼v
。否决的答案应该被丢弃。简单来说,1票的答案应与2票0票的答案相同。
然后n=Vc+B
使用加权线性回归将该数据拟合到上述模型中。
例如,给定语言的给定数据
n1=20, c1=8.2, v1=1
n2=25, c2=10.3, v2=2
n3=15, c3=5.7, v3=5
现在,我们撰写相关矩阵和向量A
,y
并W
与我们在向量参数
[1 c1] [n1] [1 0 0] x=[B]
A=[1 c2] y=[n2] W=[0 2 0], [V]
[1 c3] [n3] [0 0 5]
我们求解矩阵方程('
表示转置)
A'WAx=A'Wy
for x
(因此,我们得到了B
and V
参数)。
当给定自己的语言名称和字节数时,您的分数将是程序的输出。所以是的,这一次甚至Java和C ++用户也可以赢!
警告:由于人们使用“很酷”的标题格式并将人们将其代码挑战问题标记为“ 代码高尔夫”,因此该查询生成的数据集包含许多无效行。我提供的下载已删除了大多数异常值。请勿使用查询随附的CSV。
编码愉快!
C++ <s>6 bytes</s>
。此外,我在今天之前从未做过任何T-SQL,并且我对自己能够提取字节数印象深刻。