对不起,我不擅长数学 但是有没有一个数学公式可以代替下面的代码,即计算给定qid,点和因子没有循环的点?如何将for循环计算转换为数学公式?
for (int i = 1; i < qid; i++)
{
points = points * factor;
}
如何可以转换上述代码成数学公式比可以在一个单一的线路被计算,而不循环 感谢。
对不起,我不擅长数学 但是有没有一个数学公式可以代替下面的代码,即计算给定qid,点和因子没有循环的点?如何将for循环计算转换为数学公式?
for (int i = 1; i < qid; i++)
{
points = points * factor;
}
如何可以转换上述代码成数学公式比可以在一个单一的线路被计算,而不循环 感谢。
假设points
被初始化为1
,它等同放着清单points = factor^(qid-1)
,或一般情况下:points_after = points_before * factor^(qid-1)
循环重复qid - 1
倍[i
获取值:1,2,...,qid-1
,为价值i==qid
你不这样做多],和在每次迭代中,你每次都多points
通过factor
,所以你多它通过共factor^(qid-1)
你怎么解决这个问题?你用笔和纸跟踪测试值的循环,并尝试测试几个方程或什么? – Tamer 2012-03-12 18:09:19
@Tamer:不需要,循环重复'qid-1'次,因为它从1到'qid' [不包括'qid'],并且每次迭代增加1,因此你得到'points = points * factor * factor * ... * factor' ['qid-1' times],它的定义是'points * factor ^(qid-1)' – amit 2012-03-12 18:12:46
我想了解如何独立完成,像我应该学习什么课程才能做到这一点:) – Tamer 2012-03-12 18:15:07
基本上你的代码是代表“点=点*因素qid - 1“。您如何在代码中表达这一点取决于语言/平台。例如,您可以使用Java代码:
points *= Math.pow(factor, qid - 1);
正确的答案将也取决于类型的points
和factor
,这两者都不你告诉我们......
(也有可能你的意思是从0开始而不是1,在这种情况下,从上面的代码中删除- 1
...)
什么语言/平台? – 2012-03-12 17:53:40
你的计算积分值对于无限数是相同的。循环..你ü寻找相同的..? – Teja 2012-03-12 17:54:58
上面的代码是在java – Tamer 2012-03-12 18:00:17