基于异常值的简易概率缩放:拍卖NPC出价逻辑(适配TI-84 Plus CE)
TI-84 Plus CE 虚拟拍卖NPC出价逻辑实现方案
一、核心逻辑拆解
先把需求拆解为两个核心模块,再结合随机行为实现非理性出价:
- 起拍价(sb)生成:严格落在
0.8bp ≤ sb ≤ 1.1bp区间 - NPC出价决策:基于当前出价与基准价的比值,划分三个场景,每个场景混合理性+非理性行为
1. 起拍价生成公式
利用TI-84内置的rand()函数(生成0~1的随机数),直接通过线性计算得到符合范围的起拍价:
sb = bp * (0.8 + 0.3 * rand())
- 当
rand()=0时,sb=0.8bp;当rand()=1时,sb=1.1bp,完全覆盖需求区间。
2. NPC出价场景划分
以当前出价(current_bid)与基准价(bp)的比值为判断依据,划分三个行为区间:
- 区间1:
current_bid ≤ 0.9bp(低于/接近基准价):激进出价为主,小概率非理性放弃 - 区间2:
0.9bp < current_bid ≤ 1.2bp(接近/略高于基准价):理性出价为主,小概率非理性激进 - 区间3:
current_bid > 1.2bp(远高于基准价):谨慎放弃为主,小概率非理性加价
二、TI-BASIC代码实现(适配TI-84 Plus CE)
TI-84仅支持内置rand()函数,以下代码完全贴合设备语法,变量名采用单字母避免TI-BASIC的长度限制:
:Input "BASE PRICE (BP): ", B :REM 生成起拍价SB,范围0.8B~1.1B :0.8B + 0.3B*rand→S :Disp "STARTING BID: ", S : :REM 初始化当前出价为起拍价 :S→C : :REM 拍卖循环(可根据游戏流程修改终止条件) :Lbl AUCTION_LOOP :Disp "CURRENT BID: ", C : :REM 计算当前出价与基准价的比值,简化场景判断 :C/B→R : :REM 生成0~1的随机概率,控制非理性行为触发 :rand→P : :If R ≤ 0.9 Then : REM 低出价区间:90%概率激进出价(+10%~25%),10%概率放弃 : If P ≤ 0.9 Then : C*(1 + 0.1 + 0.15*rand)→N : Disp "NPC BIDS: ", N : N→C : Else : Disp "NPC PASSES" : End :ElseIf R ≤ 1.2 Then : REM 中等出价区间:60%理性加价(+5%~15%),20%激进出价(+20%~30%),20%放弃 : If P ≤ 0.6 Then : C*(1 + 0.05 + 0.1*rand)→N : Disp "NPC BIDS: ", N : N→C : ElseIf P ≤ 0.8 Then : C*(1 + 0.2 + 0.1*rand)→N : Disp "NPC BIDS: ", N : N→C : Else : Disp "NPC PASSES" : End :Else : REM 高出价区间:80%放弃,20%小幅加价(+5%~10%,非理性行为) : If P ≤ 0.2 Then : C*(1 + 0.05 + 0.05*rand)→N : Disp "NPC BIDS: ", N : N→C : Else : Disp "NPC PASSES" : End :End : :REM 玩家出价交互(可替换为游戏实际流程) :Input "YOUR BID? (0=PASS) ", U :If U > 0 Then : U→C : Goto AUCTION_LOOP :Else : Disp "YOU PASSED. NPC WINS!" :End
三、代码细节解释
1. 变量说明
B:基准价(bp)S:起拍价(sb)C:当前出价(current_bid)R:当前出价与基准价的比值(C/B)P:随机概率值(0~1),用于触发非理性行为N:NPC的出价金额U:玩家的出价金额
2. 场景逻辑详解
低出价区间(R ≤ 0.9)
- 理性行为:90%概率加价,幅度为当前出价的10%~25%,通过
1 + 0.1 + 0.15*rand实现(0.1是基础加价率,0.15是浮动范围) - 非理性行为:10%概率放弃,打破“低价必加价”的预期
中等出价区间(0.9 < R ≤ 1.2)
- 理性行为:60%概率小幅加价(5%~15%),符合正常拍卖逻辑
- 非理性行为:20%概率大幅加价(20%~30%),模拟冲动出价;剩余20%概率放弃
高出价区间(R > 1.2)
- 理性行为:80%概率放弃,符合“价高则谨慎”的逻辑
- 非理性行为:20%概率小幅加价,模拟“赌气式出价”或判断失误
3. TI-84适配细节
- 用
→完成赋值,符合TI-BASIC语法 - 用
Lbl+Goto实现循环,适配计算器的流程控制方式 - 变量名采用单字母,避免TI-BASIC对长变量名的限制
四、可调整参数(优化游戏体验)
你可以根据游戏节奏修改以下参数:
- 场景阈值:比如把0.9改为0.85,扩大“激进出价”的区间
- 行为概率:比如把低区间的放弃概率从10%改为5%,让NPC更激进
- 加价幅度:比如把低区间的加价幅度改为15%~30%,强化激进属性
- 非理性概率:比如把高出价区间的加价概率从20%改为10%,减少不合理行为
内容的提问来源于stack exchange,提问作者Ransom Limber
相关产品推荐
相关产品推荐

