描述
我的大学项目研究存在问题。这是一个简单的例子:
Dest. X
),因为它是优先的。如果来源的项目太少,那么实现该目的地的最小数量比其他目的地更重要。问题/方法
我已经开始使用python脚本来处理它了。它会随机创建项目sources
和destinations
。但我不知道如何分发mininum amounts
,maximum_amounts
,优先顺序以及事实上所有项目,并非所有来源都连接到所有目的地。
欢迎使用任何方法,最好使用几行代码:)
提前致谢
答案 0 :(得分:0)
这是我的方法:
import random
nums = [100]+[200]+[500]
#used to check if the vars have been chekd b4
xc = 0
yc = 0
zc = 0
#define Sources:
a = random.choice(nums) #I decided to define them at random
b = random.choice(nums)
c = random.choice(nums)
d = random.choice(nums)
#Define Destinations:
x = 0 #min: 500
y = 0 #min: 100 #max: 200
z = 0 #min: 300
#prioritize:
pri = 0
if a+b+c < 500:
pri = 1
#fill x:
if pri == 0:
if a >= 500 and xc == 0:
x += a
a -= a
xc = 1
if b >= 500 and xc == 0:
x += b
b -= b
xc = 1
if c >= 500 and xc == 0:
x += c
c -= c
xc = 1
if pri == 1:
x += a+b+c
a -= a
b -= b
c -= c
#we didnt test for d bcus its not cond
#fill y:
if b >= 100 and b <= 200 and yc == 0:
y += b
b -= b
yc = 1
if c >= 100 and b <= 200 and yc == 0:
y += c
c -= c
yc = 1
if d >= 100 and b <= 200 and yc == 0:
y += d
d -= d
yc = 1
#fill z:
if a >= 300 and zc == 0:
z += a
a -= a
zc = 1
if c >= 300 and zc == 0:
z += c
c -= c
zc = 1
if d >= 300 and zc == 0:
z += d
d -= d
zc = 1
#test if it is filled:
print("X: "+"{}".format(x)+"/500+")
print("Y: "+"{}".format(y)+"/100_200")
print("Z: "+"{}".format(z)+"/300+")
#X:
if x >= 500:
print("X filled correctly!")
if x < 500:
print("X not filled!")
#Y:
if y >= 100 and y <= 200:
print("Y filled correctly!")
if y < 100:
print("Y not filled!")
if y > 200:
print("Y over-filled!")
#Z:
if z >= 300:
print("Z filled correctly!")
if z < 300:
print("Z not filled!")
input()#waits for you to end it manually
有时X不会被填充,尽管一个值为500,因为d未连接到X(d有时可能为500)
对不起,如果我错了!我不太擅长数学,我花了一段时间(希望)了解OP想要的东西。 希望我至少帮助了一些方面哈哈。 (必须使用大量代数)