6- 玩具经济模型与 Turtles间的互动
一个模拟财富变化的模型:
人(agent)在遇到其他人的时候,会发生交易,财富可能降低,也可能增加
Δ m 是 个体1 的money 变化;
m1 个体1 的财富;
m2 个体2 的财富;
ε 是随机系数,决定个体2的交易后的财富。

添加滑块

- 这里的变量是全局变量,可以在代码中拿来用的。增量代表鼠标拖动 时的变化量。
- 值: 代表默认值,可以被修改。
- 可以选择垂直放置滑块。

Let适合于为第一次使用的变量进行赋值,它包含了定义变量的意思
Set则适合于已定义的变量的赋值
one-of agentset:
从集合agentset中随机选择一个元素
n-of n agentset :
从集合agentset中随机选择n个元素
如何检测代码没有逻辑错误导致 BUG?
在最下方的命令行输入 命令。

或者画个图。

代码:
turtles-own [money]
to setup
clear-all
create-turtles agent_num[
setxy random-xcor random-ycor
set money (total_money / agent_num)
]
reset-ticks
end
to go
ask turtles[
let agsets other turtles-here
if count agsets >= 1 [
transaction (one-of agsets)
]
forward 1
]
tick
end
to transaction [trader]
let deltam 0
let money1 ([money] of trader)
let epsilon (random-float 1)
set deltam (epsilon - 1) * money + epsilon * money1
if money + deltam >= 0 and money1 - deltam >= 0
[
set money money + deltam
ask trader[
set money money1 - deltam
]
]
end
to to-update-plot
let lst [money] of turtles
set-histogram-num-bars 100
if not empty? lst [
set-plot-x-range 0 max lst
histogram lst
]
end