Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как я могу использовать следующую формулу для определения значения переменной?

Автор вопроса: CommunityОтветов: 3

Как я могу использовать следующую формулу для определения значения переменной?

Прежде чем кто-то скажет, что это не по теме, я не нахожусь в Stack-overflow, чтобы определять, какую формулу использовать. Я здесь, чтобы выяснить, как использовать формулу через C#.

Предыстория:

Ранее я открывал ветку на math.stackexchange.com, чтобы кто-нибудь мог помочь мне создать форум, который создал бы следующую последовательность: 1 , 7 , 14, 30. Пользователь под ником "Принц-полукровка" предложил мне использовать приведенную ниже формулу для создания этой последовательности.

an=A*n^3+B*n^2+C*n+D

В прошлом я использовал int, double и т. д., затем в цикле произнесите int i = i*7;, но, очевидно, в этом случае математическая формула немного сложнее, поэтому я здесь, чтобы спросите, как я могу использовать вышеуказанное в С#

Ссылка на тему: https://math.stackexchange.com/questions/985704/what-is-the-formula-to-generate-this-number-sequence-1-7-14-30

  • Первый комментарий к этому посту не ответил на ваш вопрос? возможно, попробуйте an=1,33*n^3−7,5*n^2+19,166*n−12. Похоже, он уже передал вам необходимые значения для A, B, C и D. Kevin 22.10.2014
  • Я не знаю, как использовать это в С#, поэтому мой вопрос здесь. Если да, не могли бы вы привести пример C# 22.10.2014
  • Это простая арифметика. Вас смущает оператор ^? Это возведение в степень. Для этого вы можете использовать Math.Pow в C#. Kevin 22.10.2014
  • Я не уверен, что понимаю, данная формула не будет давать целые числа (если вы не округлите числа), поэтому я не знаю, соответствует ли она вашим потребностям. Сколько из этих чисел вам нужно? Судя по вашему посту, четырех будет достаточно. Patrice Gahide 22.10.2014
  • Кевин, в C#, если я но a перед другой буквой, ожидается, что ai или an будут самой переменной 22.10.2014
  • Вы спрашиваете, как создать переменную? int an = whatever;. Kevin 22.10.2014

mathmathematical-optimizationdiscrete-mathematicspolynomial-math

Ответы

Ответ 1 · рейтинг 1 · Jamiec

Вы можете использовать это уравнение в C# следующим образом:

public static double Calculate(double n)
{
    return (1.33*(n*n*n)) - (7.5 * (n*n)) + (19.16 * n) - 12;
}

И назовите это с

Console.WriteLine(Calculate(1));
Console.WriteLine(Calculate(2));
Console.WriteLine(Calculate(3));
Console.WriteLine(Calculate(4));

Выше пишет

0.99
6.96
13.89
29.76

Какова ваша требуемая последовательность, если вы округлили каждый результат до целого числа.

Живой пример: http://rextester.com/TIU97590

Ответ 2 · blfuentes

Попробуй это:

public static void PrintSerial(int _elements)
{
    for (int i = 1; i <= _elements; i++)
    {
        int value = (int)Math.Round(((1.33 * Math.Pow(i, 3)) -
                       (7.5 * Math.Pow(i, 2)) +
                       (19.166 * Math.Pow(i, 1)) - 12));
        Console.Write("{0} ", value);
    }
}

И вы называете это, например, PrintSerial(5);. Он напечатает 1 7 14 30 63

Использованная литература:

Math.Pow Math.Round

Ответ 3 · avidenic

Вам не нужно округлять числа, просто используйте правильный расчет следующим образом:

((4.0/3.0)*Math.Pow(i, 3)) - (7.5 * Math.Pow(i, 2)) + ((115.0/6.0) * i) - 12);

Проверьте .net здесь.

Вопрос в том, зачем вам это вычислять? Вам нужно только 4 значения из последовательности или больше?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы