如何将 for 循环转换为数学 function/expression?
How to convert a for loop into a mathematical function/expression?
我有一些 for 循环形式的代码,这对编程来说很好,但如果我想在论文或文章中发表该算法则不行。因此,我想以数学表达式的形式编写该算法。
该算法主要在于返回验证 for 循环内条件的迭代
for(i=0; i<n; i++){
if(min_x + i*db <= theta <= min_x + (i+1)*db)
break;
else if(min_x > theta)
break;
}
如果第二行中的第二个不等式是 <
而不是 <=
,则这里的表达式有效。换句话说,如果您的行是
,则下面的表达式适合
if(min_x + i*db <= theta < min_x + (i+1)*db)
我的表达也假设db
是肯定的。如果允许它为零(产生被零除错误)或负数,事情会变得更奇怪。
i = min(n, int(max(theta - min_x, 0) / db))
int
可以用最大整数函数的常规符号之一表示,例如常规方括号或没有上水平线的方括号。
注意:@aka.nice 的一个小提示,用于改进处理 for
循环正常退出而不是 break
.
的情况
我有一些 for 循环形式的代码,这对编程来说很好,但如果我想在论文或文章中发表该算法则不行。因此,我想以数学表达式的形式编写该算法。
该算法主要在于返回验证 for 循环内条件的迭代
for(i=0; i<n; i++){
if(min_x + i*db <= theta <= min_x + (i+1)*db)
break;
else if(min_x > theta)
break;
}
如果第二行中的第二个不等式是 <
而不是 <=
,则这里的表达式有效。换句话说,如果您的行是
if(min_x + i*db <= theta < min_x + (i+1)*db)
我的表达也假设db
是肯定的。如果允许它为零(产生被零除错误)或负数,事情会变得更奇怪。
i = min(n, int(max(theta - min_x, 0) / db))
int
可以用最大整数函数的常规符号之一表示,例如常规方括号或没有上水平线的方括号。
注意:@aka.nice 的一个小提示,用于改进处理 for
循环正常退出而不是 break
.