该场景位于原神--荒海中, 做任务"神樱大袚"时会偶然碰到. 解密规则如下
共有5颗石块, 中间固定, 其余四颗可以旋转;每颗石头有一紫色面, 所有石头紫色面同面则解谜成功使用雷元素可以激活石块, 自己与相邻石块发生一次顺时针旋转转了半天情况如下, 我们将左下角(靠近阿晴耳朵的)石块编号1, 从此顺时针依次编号2, 3, 4
对侧视角如下:
实在不想戳了!!! 玩了一天的罪恶涌上心头, 不行得学习一会儿了!!!
仔细分析, 不难得到, 这就一简简单单的线性整数规划问题. 1-4颗石头分别还需要单独旋转1, 0, 3, 2次才能与中间同面, 但是每颗石头的命运不是自己说了算的(受相邻石块影响), 我们记每块石头需要旋转n1, n2, n3, n4操作次, 同时在整个过程中转了k1, k2, k3, k4圈.
对于1号石头, 其受2, 4号石头的影响, 约束条件为:
n1+n2+n4=4k1+1n_1+n_2+n_4=4k_1+1
对于2, 3, 4号石头, 同理可得:
n1+n2+n3=4k2+0n2+n3+n4=4k3+3n1+n3+n4=4k4+2n_1+n_2+n_3=4k_2+0 \\ n_2+n_3+n_4=4k_3+3 \\ n_1+n_3+n_4=4k_4+2
对于还要锄地的打工人们, 当然希望总操作数最少, 即
min:N=n1+n2+n3+n4min: N=n_1+n_2+n_3+n_4
模型汇总如下:
min:N=n1+n2+n3+n4s.t.{n1+n2+n4=4k1+1n1+n2+n3=4k2+0n2+n3+n4=4k3+3n1+n3+n4=4k4+2ni,ki≥0,i=1,2,3,4min: N=n_1+n_2+n_3+n_4 \\ s.t. \left\{ \begin{aligned} n_1+n_2+n_4=4k_1+1 \\ n_1+n_2+n_3=4k_2+0 \\ n_2+n_3+n_4=4k_3+3 \\ n_1+n_3+n_4=4k_4+2 \\ n_i, k_i \geq 0, i=1,2,3,4 \end{aligned} \right.
MATLAB大法好!!!, 直接利用intlinprog()函数求解, 完整代码如下:
MATLAB成功求解:
MATLAB求解结果即, 1-4颗石块旋转3, 0, 1, 2次, 最少需要6次操作, 1, 2, 4号石块多转了一圈.
实际操作后, 出现一个珍贵的宝箱:
好耶!
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:704559159@qq.com