Lingo的@for与@sum

谁可以将lingo中的for循环解释清楚?
在这里插入图片描述

min = @sum(links: c * x);

在这里插入图片描述

@for(supplys(i): @sum(demands(j): x(i,j))=S(i));

注意到随着 i=1,2,3的 变化,这实际上是 3 个式子。要表示这种多个重复式子,就用到Lingo里的 @for() 函数,首先得告诉它有多少重复的式子,同样只能用声明的(对应的)数组来告诉,这里是 supplys(i), 并用 i 表示重复的索引。

  • @for 冒号前写的部分表达的意思是有多少个这样的式子,冒号后写的是式子的内容是什么

因为出现求和,所以@for的内层用@sum

  • @sum 冒号前写的部分表达的意思是如何加和,用到的下标是求和符号下的。即上边的 j

整个意思就是,当i=1时,在 x 1 j x_1j x1j中,从j=1加到j=4的值等于 s i s_i si

如果看成二维的话,相当于把第 i 行的所有数相加的和等于 s i s_i si
在这里插入图片描述

@for(demands(j): @sum(supplys(i): x(i,j)) = D(j));

写法和上述相同

如果看成二维的话,相当于把第 j 列的所有数相加的和等于 D i D_i Di

只是简单的记录,免得以后忘了

  • 27
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: lingo中的for循环和sum的嵌套可以用来实现对数组或矩阵中元素的遍历和求和操作。for循环可以用来遍历数组或矩阵中的每个元素,而sum函数可以对指定的元素进行求和。通过将for循环和sum函数嵌套使用,可以实现对数组或矩阵中所有元素的求和操作。例如,以下代码可以实现对一个二维数组中所有元素的求和: for i:=1 to n do for j:=1 to m do total:=total+array[i,j] sum:=total 其中,n和m分别表示数组的行数和列数,array[i,j]表示数组中第i行第j列的元素,total表示累加器,用于存储求和的结果。最后,将累加器的值赋给sum变量,即可得到数组中所有元素的和。 ### 回答2: lingo是一种专业的求解语言,可以非常方便的描述和求解各种数学模型。其中循环和sum的嵌套是lingo中经常用到的基本技巧,尤其在维度比较多的情况下,该嵌套结构可以大大简化和优化模型求解的过程,提高求解效率。 循环和sum的嵌套结构可以通过组合使用两个关键词来实现。循环的关键词为for,它可以用来控制变量的取值范围以及循环的体部执行的操作。sum的关键词为sum,它可以用来对一定范围内的变量进行求和操作。 在嵌套中,循环的变量可以嵌套到sum的范围表达式中,以实现对一定范围内的变量求和的功能。具体的实现方法为,在sum的范围表达式中使用for循环的变量来限定变量的取值范围,如: sum(i,for(j,1,10),a(i,j)) 其中i为sum的求和变量,for(j,1,10)表示对每个i都从j=1到j=10之间循环遍历,a(i,j)为被求和的变量。 同时,for循环也可以嵌套在其他for循环中,以实现多重循环操作,如: for(i,1,10, for(j,1,10, sum(k,1,3,a(i,j,k)) ) ) 在这个例子中,外层的for循环控制i的取值范围,内层的for循环控制j的取值范围,sum中的k表示对i和j指定的位置上的3个变量a(i,j,k)进行求和操作。 总之,循环和sum的嵌套是lingo中非常重要的基本技巧,可以用来简化和优化模型求解过程。需要注意的是,在使用时要注意循环变量的取值范围和循环次数,以避免出现无限循环或死循环的情况。 ### 回答3: Lingo是一种交互式可视化编程语言,它允许用户创建动态交互系统和应用程序。在Lingo中,for循环和sum的嵌套可以用来处理大量数据和重复的任务。 for循环是一种重复执行特定代码块的方法。使用for循环可以指定重复的次数或对数组中的每个元素执行操作。例如,以下代码演示了如何使用for循环将数组中的所有元素相加: ``` on mouseUp sumList = [2, 4, 6, 8, 10] theSum = 0 repeat with i = 1 to the number of items in sumList theSum = theSum + sumList[i] end repeat put "The sum is:" && theSum end mouseUp ``` sumLingo中的一个内置函数,用于计算数组中所有数字的和。上面的代码首先定义一个包含数字的数组,然后使用for循环遍历数组中的元素并将它们相加。由于数组中有5个数,因此for循环将执行5次。最后,将计算出的和输出到屏幕上。 嵌套循环是将一个循环放在另一个循环中的过程。在Lingo中,嵌套循环可以用于处理多维数组或多个数据集。例如,以下代码演示了如何使用for循环和sum函数嵌套来计算二维数组的总和: ``` on mouseUp matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] theSum = 0 repeat with i = 1 to the number of items in matrix repeat with j = 1 to the number of items in matrix[i] theSum = theSum + matrix[i][j] end repeat end repeat put "The sum is:" && theSum end mouseUp ``` 上面的代码首先定义一个2D数组,然后使用两个嵌套的for循环遍历数组中的元素并将它们相加。其中第一个for循环遍历每个行,第二个for循环遍历每个列。最后,将计算出的总和输出到屏幕上。 总之,Lingo中的for循环和sum函数的嵌套可以用于处理大量数据和重复的任务。使用这种嵌套循环可以使代码更加简洁和易于维护,同时提高效率。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值