我想在ruby中创建一个执行以下操作的程序
注意:
计算线性序列中整数的公式为a[n]=a[1]+(n-1)d
,例如,序列2;6;10;14;18;22;26
2=a[1]
和18=a[5]
,d=4
这是常见的区别所以根据这个序列的公式将是a[n]=2+(n-1)4
。要弄明白a[10]
是什么a[10]=2+(10-1)4
因此a[10]=38
n
。然后,如果a[n]
被赋予了a[n]-a[1]+d=dn
,那么您需要将公式重新排列为公式2;6;10;14;18;22;26
,以便根据示例序列26
26=2+(n-1)4
然后给出26-2+4=4n
,然后重新排列成等式n=7
,因此d
。
该计划
程序应该能够生成具有共同差异的序列(4;10;16;22;28
),例如。 d
或允许我输入序列> 3个带有{{1}}的整数,但我没有输入d
(3是计算d
所需的最小整数)。然后我会输入n
,然后按照序列4; 10; 16; 22; 28 a[n]
所以n=20
因此a[20]=4+(20-1)6
a[20]=118
x
1}}(注意给出的序列只有x
个位置,您需要输入x=5 1;3;5;6;8
例如。x=3 1;3;5
或x>3 integers
n
)
如果我从该序列中a[n]
给它一个整数,并且它使用例如n
的公式找到4;10;16;22;28;34;40
,程序也应该能够计算出40
,我提供40=4+(n-1)6
,然后公式将为n
,并且需要找到n
但是为了做到这一点,需要将公式重新排列为等式来查找40-4+6=6n
1}}所以n=7
因此a[n]
(注意表示44
的数字不必在显示的序列中,但必须具有相同的偏移值和相同的公差例如,我已经使用40
而不是a[n]
用于上述内容)
总之,该计划必须能够:
有了上述内容,它必须能够:
n
我该如何编写这个程序?
答案 0 :(得分:0)
不是一个完整的答案,因为这闻起来像家庭作业,但有一丝暗示。您可以使用Range
作为序列。例如:
first = 48
last = 72
step = 4
seq = (first..last).step(step).to_a
seq[4]
#=> 64