netlogo中的逻辑运算符

netlogo中的逻辑运算符,netlogo,logical-operators,Netlogo,Logical Operators,在我估计新产品需求的模型中,我有一个while循环来保持变量在其范围内,但它不能正常工作。3需要始终在一个范围内的功能或产品变量是重量、价格和尺寸。暂时的这种情况正确吗 while [(weight > 400) or (weight < 100)) and ((size < 5) or (size > 20)) and ((price > 90) or (price < 20))] while[(重量>400)或(重量90)或(价格=400或weight=

在我估计新产品需求的模型中,我有一个while循环来保持变量在其范围内,但它不能正常工作。3需要始终在一个范围内的功能或产品变量是重量、价格和尺寸。暂时的这种情况正确吗

while [(weight > 400) or (weight < 100)) and ((size < 5) or (size > 20)) and ((price > 90) or (price < 20))]
while[(重量>400)或(重量<100))和((尺寸<5)或(尺寸>20))和((价格>90)或(价格<20))]

谢谢

是的,看来你的逻辑不对

例如,如果您有一个权重,
w
,这意味着
w
必须介于400和100之间。所以,
(w<400和w>100)

下面将说明所有变量是否都在各自的范围内。
重量<400,重量>100,尺寸<20,尺寸>5,价格<90,价格>20

请注意,
size
是默认的海龟属性

如果你想否定这一点,只需在前面加一个not,用括号括住其他所有内容。
not(重量<400,重量>100,尺寸<20,尺寸>5,价格<90,价格>20)

你可能想研究一下德·摩根定律

为了记录在案,这里是通过推not通过的否定的等价物:

weight >= 400 or weight <= 100 or size >= 20 or size <= 5 or price >= 90 or price <= 20

weight>=400或weight=20或size=90或price是的,你的逻辑似乎不正确

例如,如果您有一个权重,
w
,这意味着
w
必须介于400和100之间。所以,
(w<400和w>100)

下面将说明所有变量是否都在各自的范围内。
重量<400,重量>100,尺寸<20,尺寸>5,价格<90,价格>20

请注意,
size
是默认的海龟属性

如果你想否定这一点,只需在前面加一个not,用括号括住其他所有内容。
not(重量<400,重量>100,尺寸<20,尺寸>5,价格<90,价格>20)

你可能想研究一下德·摩根定律

为了记录在案,这里是通过推not通过的否定的等价物:

weight >= 400 or weight <= 100 or size >= 20 or size <= 5 or price >= 90 or price <= 20

weight>=400或weight=20或size=90或price您试图表达的逻辑是什么…就像英语一样?我想优化这三个变量。在局部搜索过程中,这些变量的值不断变化,我想确保它们仍在范围内。范围是:100 while循环是否一直执行到值在范围内?或者你想循环直到它们超出范围?你想表达的逻辑是什么…就像英语一样?我想优化这三个变量。在局部搜索过程中,这些变量的值不断变化,我想确保它们仍在范围内。范围是:100 while循环是否一直执行到值在范围内?或者你想循环直到它们超出范围吗?非常感谢。我不知道这样使用“not”。实际上,我希望while循环能够做到这一点:当变量不在范围内时,它会减小步长。我这样定义它:而[not((weight=100))和((sizex>=5)和sizex=20)和(price我在你的while循环中没有看到任何与步长相关的代码。是否有其他代码?很抱歉,我的问题不太清楚。我在设置过程中定义了一个步长。然后我创建了这个while循环来检查变量是否在范围内。如果不在范围内,则应该使步长变小并计算变量再说一遍。你的优化是如何计算的?试着把你的代码分成几个小的可测试组件。你可以使用netlogo测试扩展和/或打印语句。我已经把它分解了,但问题在于优化过程。我会分别问关于这一点的问题。非常感谢。我不知道如何使用“不”这样。我实际上希望while循环这样做:当变量不在范围内时,它会减小步长。我这样定义它:while[not((weight=100))和((sizex>=5)和sizex=20)和(price我在你的while循环中没有看到任何与步长相关的代码。是否有其他代码?很抱歉,我的问题不太清楚。我在设置过程中定义了一个步长。然后我创建了这个while循环来检查变量是否在范围内。如果不在范围内,则应该使步长变小并计算变量再说一遍。你的优化是如何计算的?试着把你的代码分成几个小的可测试组件。你可以使用netlogo测试扩展和/或打印语句。我已经把它分解了,但问题在于优化过程。我会分别问有关这方面的问题。