Python: len(set) 的倒数为空
Python: inverse of len(set) is null
我有一个非空集,比方说 myset
。我试图通过这种方式获得其长度的倒数 1/len(myset)
并且我得到 0
尽管集合的长度不是那么大所以它的倒数为空; len(myset)
在50的数量级。
有谁知道如何解决这个问题?
非常感谢!
EDIT/UPDATE:
代码很长,但这是我使用它的部分:
from random import randint,random,uniform
import os
import math
import cplex
from datetime import datetime
from scipy.stats import norm
class Solving:
def __init__(self, init):
self.init = init
return
def run(self):
model=cplex.Cplex()
for i in self.init.getGreenNodes() - self.init.getRedNodes():
for j in self.init.getDiscretValuesNb():
model.variables.add(names=["X"+str((i,j))])
model.variables.set_types("X"+str((i,j)),"B")
model.variables.add(names=["Da"+str(i)])
model.variables.set_types("Da"+str(i),"C")
model.objective.set_sense(model.objective.sense.minimize)
model.objective.set_linear("TCost",1)
for i in self.init.getGreenNodes() - self.init.getRedNodes():
aa=1/len(self.init.getGreenNodes() - self.init.getRedNodes())
print aa
model.linear_constraints.set_coefficients("Cstr1", "Da"+str((i)), aa)
此代码在使用 python 3.5
时完美运行
停止执行整数除法。
1. / foo
我有一个非空集,比方说 myset
。我试图通过这种方式获得其长度的倒数 1/len(myset)
并且我得到 0
尽管集合的长度不是那么大所以它的倒数为空; len(myset)
在50的数量级。
有谁知道如何解决这个问题?
非常感谢!
EDIT/UPDATE:
代码很长,但这是我使用它的部分:
from random import randint,random,uniform
import os
import math
import cplex
from datetime import datetime
from scipy.stats import norm
class Solving:
def __init__(self, init):
self.init = init
return
def run(self):
model=cplex.Cplex()
for i in self.init.getGreenNodes() - self.init.getRedNodes():
for j in self.init.getDiscretValuesNb():
model.variables.add(names=["X"+str((i,j))])
model.variables.set_types("X"+str((i,j)),"B")
model.variables.add(names=["Da"+str(i)])
model.variables.set_types("Da"+str(i),"C")
model.objective.set_sense(model.objective.sense.minimize)
model.objective.set_linear("TCost",1)
for i in self.init.getGreenNodes() - self.init.getRedNodes():
aa=1/len(self.init.getGreenNodes() - self.init.getRedNodes())
print aa
model.linear_constraints.set_coefficients("Cstr1", "Da"+str((i)), aa)
此代码在使用 python 3.5
时完美运行停止执行整数除法。
1. / foo