线性序列发生器

时间:2014-10-30 07:38:30

标签: ruby math formula equation sequences

我想在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;5x>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]用于上述内容)

总之,该计划必须能够:

  • 生成具有共同差异的随机数序列
  • 如果输入公共差异,则生成随机数序列
  • 允许输入超过3个整数的数字序列

有了上述内容,它必须能够:

  • 锻炼n
  • 锻炼{{1}}

我该如何编写这个程序?

1 个答案:

答案 0 :(得分:0)

不是一个完整的答案,因为这闻起来像家庭作业,但有一丝暗示。您可以使用Range作为序列。例如:

first = 48
last = 72
step = 4

seq = (first..last).step(step).to_a

seq[4]
#=> 64