Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将学术数学符号转换为C代码_C_Math_Notation - Fatal编程技术网

将学术数学符号转换为C代码

将学术数学符号转换为C代码,c,math,notation,C,Math,Notation,你们中那些对数学略知一二的人可能会笑,但我不记得数学中有多少符号规则,我需要帮助将其转换为C代码。非常感谢您的帮助: 214 10,000 {(10,000 × [1+.0599/365] )} +300 answer = ──────────────────────────────────────────── 214

你们中那些对数学略知一二的人可能会笑,但我不记得数学中有多少符号规则,我需要帮助将其转换为C代码。非常感谢您的帮助:

                                         214
          10,000 {(10,000 × [1+.0599/365]   )} +300
answer = ────────────────────────────────────────────
                                   214
                     .1+(1+(i/365))

您是在寻找powx,y函数来计算功率吗?

很简单-只是需要注意几个常见错误

在常量后面加一个.0,特别是在分母中,以便“c”将计算视为浮点数学而不是整数。 在“C”中,100/1000是0 100/1000.0是0.1

自由使用括号-不要相信记住优先规则

对于乘法31+2不是乘法,您需要使用*everywhere

powx,y函数用于x^y。现代C++编译器有一个优化的版本,其中Y是整数,所以X^ 2比X^ 2<P>快得多。
(10000.0 ( ( 10000.0 * pow(1 + 0.0599/365.0, 214.0))) + 300.0 ) / (1 + pow(1 + i/365.0, 214.0))

我想我是对的

您是在寻找一个程序来为您翻译,还是只是一次转换? 如果只是一次性转换,那就没那么激动人心了

假设我正确阅读了您的语法:

double ans = 10000 * (10000 * pow(1.0 + 0.0599 / 365, 214) + 300;
ans /= (0.1 + pow(1.0 + (i / 365.0), 214));
不过,我要说的是,你可能有一个问题,就是把事情提高到指数和除法的高度。更可能的情况是,您必须转换为日志,在日志空间中进行计算,然后再进行转换

这可能是什么样子:

double lognumerator = log(10000) + log(10000) + 214 * log(1 + 0.0599 / 365);
double logdenominator = log(0.1 + exp(214 * log(1.0 + (i / 365.0))));
double ans = exp(lognumerator - logdenominator) + exp(log(300) - logdenominator);

使用log可能会阻止您遇到底流,而这些类型的计算很可能会遇到底流。

10000{something}+300意味着什么?这是10000*左右+300吗?分母中的括号数不一致…请尽量详细。将子语句拆分为不同的临时变量;它可以使读取和维护变得更容易。请确保命名程序中的所有数字,即使它们不是变量,例如,如果它们是常量,例如PI。幻数不好:是结构节点中的2*子节点[2];二叉树的幻数是多少?是表示i=0的0英寸。。。一个神奇的数字?在被认为有害的代码中,针对幻数的无意义规则。我认为你在第一个数字后面缺少了一个乘法符号。它也很难阅读,不过最好在几行上分成几个小部分。1+.0599/365^214是1.036,我不会太担心它。1+i/365^214在i=100左右开始变大。我对你最后的声明感到困惑。作为接受双精度的函数的参数,2与2.0有什么区别?为什么两个都不能进行优化?C++可以区分同一名称的函数,但可以区分不同类型的ARG。将数字提升为浮点幂相当复杂,而整数幂可以通过简单的乘法.ps实现。对不起,你的问题是关于C,函数重载是C++。在C语言中,人们必须编写自己的平方、立方函数来使用^2和^3的乘法