Как я могу использовать следующую формулу для определения значения переменной?
Прежде чем кто-то скажет, что это не по теме, я не нахожусь в 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
Ответ 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 значения из последовательности или больше?