齿轮传递不同数量的速度,这取决于啮合齿轮的大小。

杰克有一台机器,可以旋转齿轮传动系统。但你不知道最后一档的速度。
幸运的是,你是一个伟大的代码高尔夫球手,所以你可以帮助他!
每个齿轮用两个数字表示,内齿轮的半径和外齿轮的半径。
如果齿轮A为[a,b],齿轮B为[c,d],则A与B的速度之比为c:b。
给出一个齿轮列表(二元组的列表),输出最后一个齿轮的速度.
你可以假设第一个齿轮的速度是1。
假设我们的输入是[[6,12],[3,10],[5,8]]。
第一个齿轮,[6,12],将具有1的速度。
然后,第二个齿轮,[3,10],将有一个1*12/3 = 4的速度。
然后,最后一个齿轮,[5,8],将有一个4*10/5 = 8的速度。
input output
[[1,1],[2,2]] 0.5 (1/2)
[[1,2],[1,2],[1,2]] 4 (2/1*2/1)
[[6,12],[3,10],[5,8]] 8 (12/3*10/5)适用基本的密码-高尔夫规则。
发布于 2016-07-23 07:03:32
foldr1(/).tail.init给定一个像[a,b,c,d,e,f]这样的平面列表,tail.init移除第一个和最后一个元素,然后foldr1(/)创建一个层叠的除法-- b/(c/(d/e)))),它可以交替使用*和/:b/c*d/e。
发布于 2016-07-23 06:02:53
https://codegolf.stackexchange.com/questions/86375
复制相似问题