随机化数学系数

时间:2018-04-20 22:40:11

标签: ruby-on-rails math

我需要一种方法来随机化输入数学方程(主要是它们的系数)。

例如" x + y-z e ^ 5"可以随机分为" x-y + 2z e ^ 4"或" 2x + y-3z * e ^ 4"。

我现在正在轨道中执行此操作,我遇到的一个主要问题是我只能将方程式存储在字符串中而不是数学对象中。我该怎么做呢?我可以使用任何宝石或API吗?我还需要在Latex输入方程中使用它。我使用过乳胶API,但我只找到了可以显示方程式的方法,而不是那些将字符串转换成可用和可修改的数学公式的方法。

例如,如果我输入" x + y + z",它应该被随机分配到" x-y + 2ze ^ 4"。

同样地,如果我给它" x' + sin(x / 2)-Integral(xdx)",它可以被随机分配到" 2x' -sin(x / 4) - 积分(2xdx)&#34 ;.这里的想法是函数可以采用我给出的任何等式并随机化它的系数。

1 个答案:

答案 0 :(得分:1)

不漂亮,但应该接近你想要的

def random_coef
  op1 = ['+','-'].sample
  op2 = op1 == '+' ? '-' : '+'
    "#{[1,2].sample}x #{op1} y #{op2} #{[1,2,3].sample}ze ^ #{[4,5].sample}".gsub(' ','')
end

10.times { puts random_coef}