我有两个带while循环的函数,第一个循环的结果在第二个循环中用作until条件,但是在main中调用这两个函数时,它只执行第一个函数,甚至不进入第二个函数,它只给我第一个循环的结果。你知道吗
在第一个函数self.user_association()
中有一个使用palp i的线性优化,虽然它是导致问题的原因之一,但这不是因为在第二个函数中调用循环函数block_estimated_access_link()
时,它工作得很好,但我的程序不是这样工作的,因为正如我所说的,我在第二个函数中使用了第一个循环的结果。这是代码,有人能告诉我我做错了什么或者到底是什么问题吗?你知道吗
def block_Estimation_ACCESS_LINK(self):
while (self.iteration < self.Iter_max):
self.User_association()
self.estimated_access_power()
self.calcul_alpha()
self.calcul_rate_am()
self.User_association()
self.iteration += 1
def block_bg_power_allocation(self):
EPS = 0.0000000000001
RamTot = 0
while (self.iteration < self.Iter_maxB):
self.calcul_power_backhaul()
print('backhaul Pok=', self.p_ok)
self.calcul_delta()
self.calcul_rok()
for i in self.station:
for j in self.users:
self.Ram = numpy.delete(self.Ram, self.Ram[0])
RamTot = sum(self.Ram)
if EPS <= (self.Rok[i] - sum(self.Ram[i])):
self.iteration += 1
def main(self):
self.block_Estimation_ACCESS_LINK()
self.block_bg_power_allocation()
在第一个函数中,您将执行以下操作:
然后,在第二个函数中,停止条件是:
所以第一个函数将
self.iteration
增加到self.Iter_max
。现在,如果self.Iter_maxB
与self.Iter_max
的值相同,那么第二个函数循环将永远不会执行。我想这就是这里发生的事情。检查那两个变量。 如果您希望以相同的时间执行这两个循环,那么Fix应该是这样的:相关问题 更多 >
编程相关推荐