如今的孩子们既没有时间,也没有志向去把盒子堆在电锯上,或者玩平衡身体的东西。这给一个杠杆模拟器的软件市场留下了很大的空间,根据我的模型,它会像疯一样销售!
我已经申请了这样一个游戏的专利(待定),但需要一个专家程序员为我编写游戏逻辑。据我理解,根据最终程序的字节大小对程序员进行补偿是一种标准做法。因此,我将把这项利润丰厚的合同授予出价最低的投标人。
杠杆是由一个支点平衡的一系列盒子或空空间。每个盒子有一个特定的重量,从1到9,空格没有重量。如你所知,一个箱子在杠杆上的重量与那个盒子离支点有多远成正比。一盒重量的4位于支点的第三个空间上,它将向杠杆的那一边贡献12有效的力单位。
我需要一个程序,给定一个输入杠杆,将输出该杠杆是向左倾斜,还是向右倾斜,还是完全平衡。
stdin或作为一个命令行字符串。1”和“9”表示。这些字符表示各自的权重。空空间将由空格‘’表示。支点将用插入符号“^”表示。示例输入杠杆可能类似于:8 2^ 941
这个杠杆是完全平衡的:(4*8) + 0 + 0 + (1*2) == 0 + (2*9) + (3*4) + (4*1) == 34
stdout,或者是程序的返回代码。这里我用L,R,B来表示左重,右重,平衡:
11 ^9输出:B321^ 12输出:L9^ 1输出:R(如果有人有一些“更棘手”的测试用例,可以随意编辑)。
不一定受到启发,但与使一组重量平衡在一只爪子上有关。
发布于 2015-11-25 01:45:17
Japt是JavaScript的简写版本。解释器
U¬r@X+~~Y*(Z-Ub'^),0 g返回-1表示L,0返回B,1返回R。
Uq r@X+~~Y*(Z-Ub'^),0 g
// Implicit: U = input string
Uq r@ ,0 // Reduce the input by this function, starting at 0:
X+~~Y* // Return the previous value, plus the current value times
(Z-Ub'^) // the current index minus the index of "^" in U.
g // Take the sign of the resulting number.
// Implicit: output last expression发布于 2015-11-25 01:08:47
._s*V-Rxz\^Uzm.xsd0z-1代表左偏,0代表平衡,1代表右偏.
它的工作原理:
._s*V-Rxz\^Uzm.xsd0z
z = input()
Weights:
m z Map over z
.x try:
sd cast charater to int
0 except: 0
Lever arm:
Uz range(len(input()))
-Rxz\^ Subtract index of caret from each value.
*V Vectorized multiplication.
s Sum.
._ Take sign and print.发布于 2015-11-24 23:33:57
s=>{a=[0,0];d=s.split`^`;for(j=0;j<2;j++)for(i=0;i<d[j].length;i++)a[j]+=d[j][i]*(j==0?d[j].length-i:i+1);alert(a[0]==a[1]?'B':a[0]>a[1]?'L':'R')}相当大。
演示。
https://codegolf.stackexchange.com/questions/64687
复制相似问题