If statement 将带条件语句的伪码转换为数学方程

If statement 将带条件语句的伪码转换为数学方程,if-statement,math,pseudocode,If Statement,Math,Pseudocode,我目前正在将我的编程代码转换成数学方程,以完成我的学士学位论文 我的伪代码如下所示: for i in range(0, n): if X[i] < Y[i] then p += X[i] * k1 + (Y[i] - X[i]) * k2 else p += Y[i] * k1 endif endfor 范围(0,n)内的i的: 如果X[i]

我目前正在将我的编程代码转换成数学方程,以完成我的学士学位论文

我的伪代码如下所示:

for i in range(0, n):
    if X[i] < Y[i] then
         p += X[i] * k1 + (Y[i] - X[i]) * k2
    else
         p += Y[i] * k1
    endif
endfor
范围(0,n)内的i的
:
如果X[i]
我尝试将伪代码转换为数学方程:


这在数学上正确吗?或者有更直观的方法吗?

您的伪代码具有
范围(0,n)
但您的latex公式具有
\sum{i=1}^n
。关于
i=0
至少存在一个差异。也可能是关于
i=n
,尽管这取决于您所称的
range(0,n)
(例如在python中,它不包括
n
;在伪代码中,无法知道您的意思)除此之外,最小/最大逻辑是正确的。@Stef谢谢,你认为对于计算机科学的学士学位论文来说,在方程中使用min/max而不是基本的二次公式可以吗?我不知道你在说什么基本的二次公式?是的,min/max非常好。请注意,在Python中使用numpy进行数值计算非常方便,并将代码编写为
p=np.sum(np.minimum(X,Y)*k1+np.maximum(Y-X,0)*k2))
,这更接近数学公式。使两者更容易比较(并使其运行更快)。(顺便说一句,我认为在Python中,索引以0开头,在数学公式中以1开头就足够了。)