gpt4 book ai didi

list - 尝试在每个滴答声中替换嵌套列表中的项目

转载 作者:行者123 更新时间:2023-12-02 03:27:09 26 4
gpt4 key购买 nike

我正在构建一个模拟病毒在世界范围内传播的模型。我目前有 16 个区域,每个区域有 28 个影响病毒传播的变量。由于大量的变量/区域,我知道使用列表是最有效/最好的。

这是我当前设置区域的代码:

Set Name 0
Set Living-Pop 1
Set Infected-Pop 2
Set Dead-Pop 3
Set Vaccinated-Pop 4
Set Count-Patches 5
Set Density 6
Set Infected-Density 7
Set Development 8
Set Healthcare 9
Set Research-Constant 10
Set Research-Rate 11
Set Water-Constant 12
Set Water-Rate 13
Set Airport-Security 14
Set Border-Security 15
Set Vaccine-Constant 16
Set Vaccine-Rate 17
Set Region-Number 18
Set Airports? 19
Set Hospitals? 20
Set ER? 21
Set Research? 22
Set Water? 23
Set Infected-water? 24
Set Infected? 25
Set Vaccine? 26
Set Borders? 27

set region-data [
[ "Hinterlands" 36138177 0 0 0 2702 13374.60289 0 10 0.975 7.5E-11 0.027103633 0.5 5 0.25 0.03 50000000000 0.007227635 1 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "USA" 318433268 0 0 0 1272 250340.6195 0 10 1 7.5E-11 0.238824951 0.5 5 0.25 0.075 50000000000 0.063686654 2 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Central America" 204157962 0 0 0 383 533049.5091 0 6 0.45 2.5E-11 0.030623694 0.6 3.6 0.4 0.01 50000000000 0.024498955 3 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Andes" 97253901 0 0 0 558 174290.1452 0 5 0.45 2.5E-11 0.012156738 0.2 1 0.3 0.05 50000000000 0.00972539 4 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Amazon" 186508253 0 0 0 1407 132557.3937 0 6 0.45 1.5E-11 0.016785743 0.35 2.1 0.33 0.03 50000000000 0.02238099 5 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Patagonia" 94307819 0 0 0 481 196066.1518 0 5 0.65 1.5E-11 0.007073086 0.4 2 0.3 0.05 50000000000 0.009430782 6 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Europe" 742538246 0 0 0 1175 631947.4434 0 10 0.85 2.5E-11 0.185634562 0.5 5 0.1 0.01 50000000000 0.148507649 7 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Middle East" 209455634 0 0 0 1197 174983.8212 0 5 0.3 1.5E-11 0.015709173 0.1 0.5 0.5 0.5 50000000000 0.020945563 8 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "North Africa" 459321750 0 0 0 2661 172612.4577 0 4 0.2 2.5E-11 0.045932175 0.1 0.4 0.3 0.2 50000000000 0.03674574 9 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "South Africa" 695349014 0 0 0 1535 452996.1003 0 4 0.1 2.5E-11 0.069534901 0.2 0.8 0.3 0.03 50000000000 0.055627921 10 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Russia" 143538971 0 0 0 4071 35258.89732 0 8 0.5 7.5E-11 0.086123383 0.5 4 0.25 0.03 50000000000 0.022966235 11 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "East Asia" 1510450616 0 0 0 1602 942853.0687 0 7 0.35 6.5E-11 0.68725503 0.7 4.9 0.25 0.075 50000000000 0.211463086 12 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "South Asia" 1674152344 0 0 0 1346 1243798.175 0 5 0.25 3.5E-11 0.29297666 0.8 4 0.3 0.01 50000000000 0.167415234 13 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Austalia" 23132574 0 0 0 1156 20010.87716 0 9 0.85 5E-11 0.010409658 0.3 2.7 0.25 0 50000000000 0.004163863 14 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Oceania" 43984482 0 0 0 121 363508.1157 0 2 0.3 5E-12 0.000439845 0.01 0.02 0.25 0 50000000000 0.001759379 15 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE]
[ "Ocean" 0 0 0 0 56542 0 0 0 0 0 0 0 0 0 0 0 0 16 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE]

在设置程序中,我想编写一个程序,从区域数据列表中选择 1 个区域(使用选择器),并替换 Infected?使用 true 和 Infected-Pop 以及 1-10 之间的随机整数。在我的 go 程序中,我然后计划编写程序,根据感染百分比、待定感染率、医疗保健、发展、总密度、和感染密度。

在从将数据存储在补丁中转换为将数据存储在列表中之前,我使用了以下代码:

to-infect
ask patches with [infected?][
if infected-pop < living-pop [
set infected-pop ((infected-pop + (((((infected-pop / living-pop) * (infection-rate / healthcare)) / development) * ((density - infected-density))) * 10))) ]
if infected-pop > living-pop [ set infected-pop living-pop ]
end

并且需要找到一种方法来重写代码以处理列表。

有没有人能帮我写一个设置程序来实现我的目标/帮我修改我的 go 程序以获取列表而不是补丁?

最佳答案

可能有更智能的解决方案,但您可以这样做:

to replace [region var-position new-value]
let i 0
foreach region-data
[
if item 0 ? = region
[
set region-data replace-item i region-data replace-item var-position ? new-value
]
set i (i + 1)
]
end

if 条件,检查 region-data 的当前子列表的第一项是否等于指定的 region。if-condition 中的 Command 是一个嵌套的 replace-item 函数。内部的获取 region-data 的当前子列表,并用指定的 new-value 替换子列表的指定 var-position。外面的那个用这个修改后的列表替换 region-data 中的旧子列表。在您的情况下,假设您的界面上有一个名为“region-chooser”的选择器,您可以像这样在设置过程中调用替换函数:

replace region-chooser Infected? TRUE
replace region-chooser Infected-Pop random 10

您还可以像这样在任何地区使用此功能:

replace "USA" Water-rate 50

关于list - 尝试在每个滴答声中替换嵌套列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com