【问题标题】:Random Number with NextDouble (C#)带有 NextDouble 的随机数 (C#)
【发布时间】:2016-07-16 06:37:01
【问题描述】:

我正在编写一个感知器,并且确实需要获得从正常 NextDouble (0, 1) 到 (-0.5, 0.5) 的范围。问题是,我正在使用一个数组,但我不确定它是否可能。希望这是足够的信息。

Random rdm = new Random();

double[] weights = {rdm.NextDouble(), rdm.NextDouble(), rdm.NextDouble()};

【问题讨论】:

  • 您是否关心 -0.5 是否可行?
  • 你能解决这个问题吗?你看到所有答案了吗?

标签: c# random perceptron


【解决方案1】:

只需从随机数中减去 0.5:

double[] weights = {
                     rdm.NextDouble() - 0.5, 
                     rdm.NextDouble() - 0.5, 
                     rdm.NextDouble() - 0.5 
                   };

【讨论】:

【解决方案2】:

如果您只需要一个十进制值(我从维基百科中看到的疯狂猜测)并包含两个限制,我不会使用双精度值,而是使用十进制值,然后进行数学运算:

(rdm.Next(11) - 5) / 10M;

这将返回从 -0.5 到 0.5 的 11 个不同可能值中的任何一个。

或者您可以采用双路但进行四舍五入,这样您实际上可以达到上限 (0.5):

Math.Round(rdm.NextDouble() - 0.5, 1);

这种方式可能比我的第一个建议慢一点。

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2015-02-13
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多