【发布时间】:2016-09-11 08:23:01
【问题描述】:
我遇到了这个错误:当我尝试调用任何方法时,对象引用未设置为对象的实例,在这种情况下,我尝试调用 Next 方法。
至于我的 LaggedFibonnaci 类中的代码:
int[] initialsetofvalues;
int j = 30;
int k = 127;
int m = 2 ^ 31;
int n;
public LaggedFibonnaci()
{
int[] initialsetofvalues = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
}
public int Next(int maxValue)
{
n = k;
int randNo = (initialsetofvalues[n - j] + initialsetofvalues[n - k]) % m;
n++;
return randNo % (maxValue + 1);
}
public int NextWithDiscarding(int maxValue)
{
Random rand = new Random();
//Generate 127 Random Numbers
for (int i = maxValue - 1; i > 0; i--)
{
int randNumbers = rand.Next(1, 128);
randNumbers = initialsetofvalues[maxValue];
}
//Generate 997 Random Numbers
for (int i = maxValue - 1; i > 0; i--)
{
int randNumbers = rand.Next(1, 998);
randNumbers = initialsetofvalues[maxValue];
}
return Convert.ToInt32(rand);
}
public int NextWithRandomShuffling(int maxValue)
{
int[] v = new int[61];
for (int i = 0; i < 61; i++)
{
v[i] = Next(maxValue);
}
int y = Next(maxValue);
int rand = (61 * y) / m;
v[rand] = y;
return y;
}
}
我还从IRandomProvider接口实现了一个maxValue,代码是:
public interface IRandomProvider
{
int Next(int maxValue);
}
是的,laggedfibonnaci 类继承自这个接口。
程序代码:
{
static void Main(string[] args)
{
LaggedFibonnaci lfn = new LaggedFibonnaci();
int[] initialsetofvalues = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int array = lfn.Next(2);
Console.WriteLine(array);
Console.ReadLine();
}
}
有什么帮助吗?谢谢
【问题讨论】:
-
(所以你的课程确实有源代码。可惜它没有包含对其目的的提示。)
-
意义?我想做的就是做一个滞后的斐波那契算法,这怎么不是提示?
-
如果你做两件事中的一件,这个问题会好很多。更好的选择是将问题缩小到尽可能小的代码部分(请参阅here)。另一种选择是至少包含一段可以编译和运行的完整代码,以便我们可以看到实际发生的情况,而不仅仅是没有上下文的代码块
-
对不起,我还是新手,谢谢你的评论!
标签: c# arrays algorithm generator