Functional programming 在Mathematica中尝试生成随机数数组时出现问题
我试图以函数的方式在Mathematica中生成一个随机数数组。这是我目前的尝试:Functional programming 在Mathematica中尝试生成随机数数组时出现问题,functional-programming,wolfram-mathematica,Functional Programming,Wolfram Mathematica,我试图以函数的方式在Mathematica中生成一个随机数数组。这是我目前的尝试: Array[Random[Real, {-10, 10}], 7] 问题是,这总是打印相同的号码,当然,这不是我要找的。我知道Mathematica计算Random[Real,{-10,10}]一次,然后总是使用相同的值。我如何避免这个问题,保持这种功能性风格 感谢数组的第一个参数是应用于每个数组索引的函数(在本例中为值1到7)。如果你评估 Array[Random[Real, {-10, 10}], 7]
Array[Random[Real, {-10, 10}], 7]
问题是,这总是打印相同的号码,当然,这不是我要找的。我知道Mathematica计算Random[Real,{-10,10}]
一次,然后总是使用相同的值。我如何避免这个问题,保持这种功能性风格
感谢数组
的第一个参数是应用于每个数组索引的函数(在本例中为值1到7)。如果你评估
Array[Random[Real, {-10, 10}], 7]
结果是这样的:
{3.91766[1], 3.91766[2], 3.91766[3], 3.91766[4], 3.91766[5],
3.91766[6], 3.91766[7]}
发生的情况是:
Random[Real,{-10,10}]
的计算结果为3.91766
此结果用作“函数”,并应用于每个数组索引
因此,我们看到了一系列表达式,如3.91766[1]
,这是一个奇数表达式,其中实数像函数一样应用于整数
如果目的是生成7个不同随机数的列表,可以使用:
Array[Random[Real, {-10, 10}] &, 7]
此表达式与原始表达式之间的唯一区别是存在“&”。这使得第一个参数成为函数。该函数应用于每个数组索引(但忽略它),然后每次返回一个新的随机数
获取此结果的另一种方法是使用表
:
Table[Random[Real, {-10, 10}], {7}]
在Mathematica的当前版本中,Random
函数已过时,并已被RandomInteger
和RandomReal
取代。在这种情况下,RandomReal
非常有用:
RandomReal[{-10, 10}, 7]
。。。其中,第一个参数是可供选择的范围,第二个参数是所需值的数量。注意,也可以生成高维随机数组,例如
RandomReal[{-10, 10}, {7, 7}]
Array
的第一个参数是应用于每个数组索引的函数(在本例中为值1到7)。如果你评估
Array[Random[Real, {-10, 10}], 7]
结果是这样的:
{3.91766[1], 3.91766[2], 3.91766[3], 3.91766[4], 3.91766[5],
3.91766[6], 3.91766[7]}
发生的情况是:
Random[Real,{-10,10}]
的计算结果为3.91766
此结果用作“函数”,并应用于每个数组索引
因此,我们看到了一系列表达式,如3.91766[1]
,这是一个奇数表达式,其中实数像函数一样应用于整数
如果目的是生成7个不同随机数的列表,可以使用:
Array[Random[Real, {-10, 10}] &, 7]
此表达式与原始表达式之间的唯一区别是存在“&”。这使得第一个参数成为函数。该函数应用于每个数组索引(但忽略它),然后每次返回一个新的随机数
获取此结果的另一种方法是使用表
:
Table[Random[Real, {-10, 10}], {7}]
在Mathematica的当前版本中,Random
函数已过时,并已被RandomInteger
和RandomReal
取代。在这种情况下,RandomReal
非常有用:
RandomReal[{-10, 10}, 7]
。。。其中,第一个参数是可供选择的范围,第二个参数是所需值的数量。注意,也可以生成高维随机数组,例如
RandomReal[{-10, 10}, {7, 7}]
您可以使用Array[Random[Real,{-10,10}]&,7]
。注意符号,它基本上把第一个参数变成了一个没有参数的函数
但是花环的方法要高得多…你可以使用数组[Random[Real,{-10,10}]&,7]
。注意符号,它基本上把第一个参数变成了一个没有参数的函数
但是花环的方法要高得多…我注意到我在这方面不是100%的丰富。。。但我有一些链接似乎有帮助。以下内容似乎对我有用。数字是(1.)最小值(2.)最大值和(3.)要生成的数字
RandomInteger[{1,5},10]
从这里开始:。希望有帮助 我注意到我在这方面不是100%的富有。。。但我有一些链接似乎有帮助。以下内容似乎对我有用。数字是(1.)最小值(2.)最大值和(3.)要生成的数字
RandomInteger[{1,5},10]
从这里开始:。希望有帮助 第二部漫画:。很抱歉只是必须.+1才能完美地应对形势…第二部漫画:。很抱歉为了完美地满足这种情况,必须+1。花环的答案有相同的逐字代码:Array[Random[Real,{-10,10}]&,7]
@Mr.Wizard尽管看起来很像,但这只是另一种同时给出答案的情况。我最初的回答没有包含这个表达,尽管我在点击“保存”后立即想到了它。我立即添加了它,在编辑未记录的时间窗口内,当我保存更新后的回复时,Brett已经贡献了他的花环,然后我又做了一个无用的评论。我将尽量减少这些。花环的答案与代码一字不差:Array[Random[Real,{-10,10}]&,7]
@Mr.Wizard尽管表面上看起来如此,但这只是另一种同时给出答案的情况。我最初的回答没有包含这个表达,尽管我在点击“保存”后立即想到了它。我立即添加了它,在编辑未记录的时间窗口内,当我保存更新后的回复时,Brett已经贡献了他的花环,然后我又做了一个无用的评论。我将尽量减少这些。