Math 如何将for循环转化为数学

Math 如何将for循环转化为数学,math,Math,我正试图解决一个看似简单的数学问题。我可以把这个问题写成for循环,但我不知道如何把它转化成一个等式。有人能帮忙吗 x = 10; for(int i=0; i<3000; i++) { x = x^2 } x=10; 对于(inti=0;ix^(2^3000),其中^表示的幂,如果它是一个常数,那么 x = 10000000... (etc.) 但我怀疑你想要更具内涵的东西: x = 10^6000 甚至更多: x = (10^2)^3000 或者(如果您允许稍微宽松的符

我正试图解决一个看似简单的数学问题。我可以把这个问题写成for循环,但我不知道如何把它转化成一个等式。有人能帮忙吗

x = 10;
for(int i=0; i<3000; i++)
{
    x = x^2
}
x=10;

对于(inti=0;ix^(2^3000),其中^表示

的幂,如果它是一个常数,那么

x = 10000000... (etc.)
但我怀疑你想要更具内涵的东西:

x = 10^6000
甚至更多:

x = (10^2)^3000
或者(如果您允许稍微宽松的符号):


在“…”下面加上一个水平“}3000”,一些东西(在你的例子中,原始值为10)将被平方3000次。

你提供了代码,并要求我们提供数学等价物——所以我将从字面上理解你的代码,并假设它是一种类似C的语言

在该环境中,^是按位异或运算符。因此,在循环x=10之后,因为它与常量2(切换LSB位旁边的位置)异或了偶数次


或者这仅仅是伪代码——你真的是指求幂吗?

你给出的这类问题的数学名称是。递归关系根据前面的术语An-1、An-2等定义了序列An。在你的例子中

for(int i=0; i<n; i++)
    x = x^p
An=An-12

正如其他答案所示,为给定示例创建一个循环关系非常简单。通过对关系进行看似简单的更改,解决循环关系可能很快变得更加困难:

An=An-12+c


这种非线性递归关系甚至可能没有封闭形式的解决方案,这取决于c的值。(顺便说一句,当与复数一起使用时,上面的递归关系是问题的核心。)

对不起,我应该指定,上面是伪代码。这不是编程问题,所以我不担心溢出:)我实际上在试着用手解一道数学题。我知道如何用代码表达这个问题,但不会用数学。谢谢大家的帮助所有的x^6000答案都是错的。(x^2)^3000==x^6000是真的。然而,这不是循环所说的。我很惊讶(也很失望)你在正确阅读上是少数。是不是只有我一个人真正编译了它,看看它做了什么?我想你应该得到一定数量的道具,因为你提到了^在C中不是指数运算。我认为大多数C程序员不必编译它来弄清楚这一点另外,我要记录在案,在OP澄清他使用的是伪代码之前,你确实回答了。为了记录在案,我还要声明,对于伪代码来说,使用C作为循环和大括号并不是最好的选择,这使得您的困惑更加容易理解。
for(int i=0; i<n; i++)
    x = x^p
x = x^(p^n)