【问题标题】:Lagged Fibonnaci Algorthm滞后斐波那契算法
【发布时间】: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


【解决方案1】:

改变构造函数:

public LaggedFibonnaci()
{
    this.initialsetofvalues = new[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
}

您创建了一个本地列表而不是实例列表。

【讨论】:

  • 我调整了答案中的代码。修复此问题后,您会发现代码中存在更多错误。
  • 它弹出与以前相同的错误,如何解决?
  • 是改了构造函数还是改了main方法?我用我的修复测试了你的代码,它没有显示同样的错误。
  • 是的,代码还有更多问题。该网站不是为了帮助您调试,而是为了回答明确的问题。
  • 这不是关于我是一个“聪明的裤子”(让我们不要陷入个人争论)这是关于这个网站的用途和不适合的用途。 SO 不是个人调试服务。这是一个提出明确问题的地方,每个帖子只问一个问题,以使这些问题对互联网的其余部分尽可能有价值。
猜你喜欢
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
相关资源
最近更新 更多