【语法】
一、隐蔽陷阱
统计孪生素数对时把相邻素数全都当成一对:100 以内相邻素数有 20 多组,可差值恰为 2 的只有 8 对,口径一混结果翻倍。
二、底层原理
孪生素数指 p 与 p+2 同为素数。做法:先试除判素,再在素数序列里比较相邻差值,恰好等于 2 才收进来。100 以内 8 对,头两对是 3+5 与 5+7;1 万以内共 190 对。
三、正确代码
基础写法(素数试除判定):
local function isPrime(n)
if n < 2 then return false end
local i = 2
while i * i <= n do
if n % i == 0 then return false end
i = i + 1
end
return true
end
进阶写法(相邻差值筛选):
local function twins(lo, hi)
local out, prev = {}, 0
for n = lo, hi do
if isPrime(n) then
if prev > 0 and n - prev == 2 then
out[#out + 1] = prev .. "+" .. n
end
prev = n
end
end
return out
end
local p = getplayerbyname("tw01")
sendmsg(p, 1, "100 以内 " .. #twins(2, 100) .. " 对")
四、引擎验证
100 以内输出 8 对,首对 3+5、次对 5+7;1 万以内 190 对,与素数表核对一致。
五、FAQ
问:2 与 3 算一对吗?
答:惯例不算,孪生专指差 2。
问:孪生素数无穷吗?
答:尚未证明,已知间隔上限被逐步压小。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法】 一、机制原理 一行代码拆解:dist[cur] + 1。网格上求起点到终点的最少步数,广度优先一遍出答案:起点入队…
【游戏】 一、规则机制 线上事故:画质只有高低两档,高档低配机掉帧,低档高配机糊成马赛克,两头挨投诉。画质分三档:流畅、均衡…
【游戏】 一、规则机制 线上事故:转生功能上线,玩家等级刚够就点转生,提示材料不足;再一看说明,写的是转生后的等级要求——界…
【语法】 一、机制原理 抛坑提问:地图上一堆据点,用最短的围墙全圈住——围墙怎么走?凸包给答案:包住全部点的最小凸多边形。单…
【游戏】 一、规则机制 隐蔽的坑:背包满时地上物品拾不起,自动拾取又全数失败,玩家手动挑得手忙脚乱。拾取策略分层:满仓时按品…
【游戏】 一、规则机制 抛个坑:好友改了名字就认不出谁是谁——备注名怎么留住?好友备注存在自己本地:备注只改自己的显示,不动…