告诫后人。
查看原帖
告诫后人。
87064
ducati楼主2023/3/4 16:16

对于这一类势能法的题,设计势能函数的时候,一定要注意 00 处的特殊情况!

为方便叙述,令 f(x)f(x) 表示 xx 对应的势能。

在尝试本题中的过程中,我钦定每个 f(ai)f(a_i) 在变换后都减小 1n\frac 1 n,这样总势能期望每次减小 11。然后我列出方程,先随机一个 f(1)f(1),然后顺次推出 f(1),f(2),f(1),f(2),\cdots \cdots

具体来说,我的方程形如:

(2k+1)F(v)kF(v1)kF(v+1)=1n(2k+1)F(v)-kF(v-1)-kF(v+1) = - \frac 1 n

其中 k=vs1(vs1)k=\frac {v} {s-1} (\frac v s-1)

看起来很对,但无法通过样例!

在经过三小时的痛苦调试后,我发现,势能函数这么设计是错的。因为,当 v=0v=0 时,k=0k=0,原式等价于 F(v)=F(v)1nF(v)=F(v)-\frac 1 n,显然无解。

为了规避这一种情况,我们大概不得不将每个都减小 1n\frac 1 n 换成每个都减小 aiai\frac {a_i} {\sum a_i}。显然,所有 ii 对应的这个值之和也是 11,但此时 F(0)F(0) 有无穷多组解,可以随意取值,势能函数就是正确的。

希望能给之后做这道题的人一点儿帮助。简而言之,某些特殊参数可能造成方程无解,我们一定要设计一个合理的势能函数。

2023/3/4 16:16
加载中...