2016-05-15 2 views
-4

im, имеющий эту ошибку: ссылка на объект не установлена ​​в экземпляр объекта, когда я пытаюсь вызвать какой-либо метод, в этом случае я попытался вызвать метод Next.Lagged Fibonnaci Algorthm

Что касается кода в моем 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; 

    } 
} 

Я также реализован MaxValue из интерфейса IRandomProvider, а код:

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(); 


     } 
    } 

Любая помощь? Благодаря

+0

(Так что у вашего класса есть исходный код. Жаль, что он не содержит намеков на его назначение.) – greybeard

+0

Смысл? все, что я пытаюсь сделать, это сделать алгоритм laggedfibonnaci, как это не подсказка? –

+0

Этот вопрос был бы значительно лучше, если бы вы сделали одну из двух вещей. Лучшим вариантом было бы сократить проблему до минимальной части вашего кода, как это возможно (см. [Здесь] (http://stackoverflow.com/help/mcve)). Другим вариантом было бы, по крайней мере, включить полный фрагмент кода, который может компилироваться и запускаться, чтобы мы могли видеть, что на самом деле происходит, а не только фрагменты кода без контекста. –

ответ

1

Изменить конструктор:

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

Вы создали локальный список вместо списка экземпляров.

+0

нет не работает https://gyazo.com/9751a28af8a6e6315d591b18f0f115f3 –

+0

Я скорректировал код в своем ответе. После исправления вы обнаружите, что в вашем коде больше ошибок. –

+0

все тот же помощник, https://gyazo.com/68c57a4043b1618a59bf42c80269a1b3 –

Смежные вопросы