我想創建隨機數,然後使用我發現的這個盒子算符算法。我遇到的問題是使用System.Random值進行任何類型的數學運算。我不能採取平方根,記錄或混合浮點值。這是我隨機分配的代碼。我一直在想它幾天,不能拿出任何東西。使用System.Random值的C#麻煩
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Random rand1 = new Random();
Console.WriteLine("999 Doubles1.");
for (int ctr = 0; ctr <= 999; ctr++)
Console.Write("{0,8:N3}", rand1.NextDouble());
Console.WriteLine();
Random rand2 = new Random();
Console.WriteLine("999 Doubles2.");
for (int ctr = 0; ctr <= 999; ctr++)
Console.Write("{0,8:N3}", rand2.NextDouble());
Console.WriteLine();
float mu = .75F;
float sigma = .1F;
float z1 = Math.Sqrt(-2 * Math.Log(rand1)) * Math.Sin(2 * Math.PI * rand2);
float z2 = Math.Sqrt(-2 * Math.Log(rand1)) * Math.Cos(2 * Math.PI * rand2);
float x1 = mu + z1 * sigma;
float x2 = mu + z2 * sigma;
}
}
}
你不能把負數的平方根(除非您使用複數)。此外,您不能使用隨機對象傳遞給需要數字的函數! –
你正在創建'Random'的兩個實例,這是一個壞主意。創建一個實例,並多次調用'NextDouble()' – CodesInChaos
-1:沒有引用編譯器錯誤消息,使您很難看到最感興趣的內容。 –