使用方法
- 「你的名字」可填可不填,示例值 柳泉,最多 12 个字符。填了之后,每一批的第一条都会是同一个专属海盗名——它由名字的字符码算出来,与随机数无关。
- 「生成数量」填 1~50 的整数,默认 12。同一批内部从全量组合里不放回抽取,12 条之间保证不重复。
- 「每条附一句海盗话术」默认勾选,语料库共 12 句;只想要干净的名字列表(比如做游戏角色表)就取消勾选。
- 点「生成海盗名」,或在两个输入框里按 Enter。结果一行名字、一行话术,「复制全部」带走纯文本,「下载 .csv」导出带 BOM 的表格文件,Excel 直接打开不乱码。
- 「载入示例」一键还原默认条件(名字留空、数量 12、勾选话术),适合演示或重置。
这个海盗名字生成器能解决什么问题
一是跑团与游戏角色命名。桌游跑团、航海题材游戏里常需要一整船的配角,逐个起名容易重复画风;本页按「外貌/船况绰号+教名+船上职务」三段式成批产出,12 条角色一眼看去像同一艘船上的 crew,而不是十二个不相关的代号。
二是活动与团建角色扮演。寻宝主题的团建、儿童派对上给每个人发一张「海盗身份卡」,专属模式尤其好用:每个孩子输入自己的名字,得到一个固定不变的海盗名,活动全程可以沿用。
三是写作与剧本的配角池。写到码头酒馆一场戏需要七八个龙套,从结果列表里挑现成的,比停下来想名字更不打断写作节奏;话术库可以直接当台词草稿用。
本页不做这些事:不出海图、不做航海计算;不生成英文海盗名(John Rackham 这类原名请查史料);话术是风格化台词,不是海盗黑话考据。想要别的题材换换口味,超级英雄名字生成器走「能力+称号」路线,奇幻风格名字生成器走精灵矮人语料。
生成原理:三段式语料与取模映射
这个海盗名字生成器的语料按史实结构分成四个独立词库,编号清楚、规模固定,全部写在页面脚本里。
三段式来自真实海盗的称呼结构。海盗黄金时代(约 1690—1730 年)留名史料的人物几乎都是「绰号+教名+职务」结构:爱德华·蒂奇的绰号「黑胡子」来自外貌(一脸编成辫子的黑须),约翰·雷克汉姆的绰号「棉嘴」来自他那件印花布(calico)外套,巴尔巴罗萨兄弟的绰号「红胡子」直接是外语原名。绰号来源不外乎外貌、出身地、习惯三族;职务则是船上真实分工——船长、大副、舵手、军需官、木匠。本页的语料库照此划分:24 个称号(外貌与船况类,如「黑帆」「独眼」「锈锚」)、24 个名号(史实与航海文学常见教名)、18 个绰号(职务与身份类)、12 句话术。
随机名字是三个模运算。每次抽取先在 0~10367 的索引数组上做 Fisher–Yates 洗牌(从尾向前,与 rand(i+1) 交换),取前 N 个索引,再按 绰号 = 索引 mod 18、名号 = floor(索引/18) mod 24、称号 = floor(索引/432) mod 24 拆开——10368 = 24×24×18,这个拆法保证每个三元组恰好对应唯一索引,组合之间零浪费。批量内不放回,所以 12 条绝不重复。
专属名字是确定性的取模映射,不是随机数。把你名字的每个字符取 charCodeAt 累加得到总和 S,然后 称号 = S mod 24、名号 = (S×7+13) mod 24、绰号 = (S×31+5) mod 18。三个模数不同、系数不同,同一名字永远得到同一个海盗名,不同名字大概率分散开。两个系数取 7 和 31 这类小素数,是为了让只差一个字符的名字(「安娜」和「安妮」)在各段的余数都错开,而不是只错开一段。
乘法计数原理给组合空间兜底。24×24×18 = 10368 是全部可能的三元组数量;再乘 12 句话术得到 124416 种「名字+台词」变体。这个规模对起名工具足够——一个 50 人班级每人都拿专属名,也只占全空间的 0.5%。
完整示例(数值仅作演示)
示例条件与页面默认值一致:名字留空、数量 12、勾选话术。结果区首屏那 12 条就是此条件下的演示输出,每一行都能在语料库中找到出处,例如「黑帆杰克 · 领航员」=称号「黑帆」(第 0 位)+名号「杰克」(第 0 位)+绰号「领航员」(第 4 位),对应索引 0×432 + 0×18 + 4 = 4。
- 组合空间 24×24×18 = 10368 种;附话术后 124416 种变体。
- 输入「柳泉」二字:字符码总和 S = 54460,映射出
称号=4、名号=17、绰号=9,即「盐渍 露娜 · 木匠」——这个结果在演示输出里不会出现,因为它是专属映射,与随机抽取互不相干。 - 跨批重复概率:连续两批各 12 条、合计 24 条当作一次不放回抽样看待,全不重复的概率约 97.37%,即至少出现一对重名的概率约 2.63%(生日问题,按全空间 10368 计算)。
语料库规模与组合空间对照表
| 词库 | 条数 | 来源依据 | 示例 |
|---|---|---|---|
| 称号(外貌/船况) | 24 | 史实绰号三来源:外貌、出身、习惯 | 黑帆、独眼、锈锚、断牙 |
| 名号(教名) | 24 | 黄金时代史实人物与航海文学 | 杰克、安妮、蒂奇、德雷克 |
| 绰号(职务/身份) | 18 | 海盗船真实分工(船长令/手册常见职位) | 船长、军需官、瞭望手、木匠 |
| 话术 | 12 | 风格化台词(非考据) | 「把朗姆酒抬上来!」 |
组合空间 = 24×24×18 = 10368;若按批内不放回抽取,一次最多可取 10368 条互不重复的名字——本页上限 50 条远未触及。以下是几条真实史实绰号与本页语料的对应关系:
| 史实人物 | 绰号来源类型 | 本页同族称号示例 |
|---|---|---|
| 黑胡子·爱德华·蒂奇 | 外貌(胡须) | 红须、断牙、独眼 |
| 棉嘴·约翰·雷克汉姆 | 衣着习惯(印花布外套) | 盐渍、锈锚、灰雾 |
| 红胡子·巴尔巴罗萨 | 外貌(直译原名) | 红须、血鸥、怒涛 |
输入范围、边界与精度说明
- 数量 1~50 的整数。小于 1、大于 50、小数和空值都会得到具体的拒绝文案;上限 50 是防止结果区一次渲染 100 行(名字+话术)把页面撑长,与组合空间无关——10368 的空间远未逼近。
- 名字输入 ≤12 个字符。超出部分
maxlength直接截断;空格和标点也参与字符码累加,所以「柳泉」和「柳 泉」会映射到不同的专属海盗名,这是特性不是缺陷——同音不同写的名字应该得到不同结果。 - 专属名有碰撞可能。取模映射把无限的名字空间压进 10368 个组合,字符码总和相同的名字(比如某些恰好等和的两字名)会得到完全相同的专属海盗名。这不是加密哈希,只是取模映射——海盗名字生成器的专属名功能做的是确定性编号,不是唯一标识,请不要当 ID 用。
- 批内不放回、批间有放回。同一批 12 条保证互不相同;关掉这批再生成,还是可能抽到上一批出现过的名字。需要「全班 40 人互不相同」时,一次生成 40 条即可满足,分两次生成则不保证。
- 话术库 12 句会重复。12 条名字配 12 句话术,话术按批内不放回随机分配,所以一批内话术也不重复;但生成超过 12 条时话术循环使用。
- 随机源是
Math.random()。角色命名不需要防预测的加密随机,Fisher–Yates 洗牌足以保证语料均匀覆盖;不需要为「会不会偏心某个绰号」担心——拆索引的三个模运算让每个三元组概率严格相等。
常见问题
为什么我每次输入同一个名字,专属海盗名都不变?
这是设计。海盗名字生成器的专属名由字符码取模映射算出,与随机数完全无关,改名才会变名。团建、跑团场景正是依赖这个确定性:孩子们记住了自己的海盗名,活动第二天再查还是同一个。
专属名和随机名会不会撞?
会。专属映射覆盖的也是同一个 10368 组合空间,随机批的第一批就可能抽到与你专属名相同的条目。撞了就当巧合——史料里绰号撞车的海盗也不止一对。
语料里的名字有史实依据吗?
名号库混编了两类来源:真实人物教名(安妮·邦妮、基德、德雷克)和航海文学常用名(弗林特出自《金银岛》)。本页是命名工具不是史料工具, fiction 与史实共用一个库,写作引用前请自行核对。
为什么绰号库里有「叛逃者」「走私客」这种负面词?
海盗船的 crew 本就流动:历史记载里相当一部分水手是被俘商船的水手被迫入伙,「叛逃者」指的正是弃商船投海盗这条真实路径。负面词让配角池更接近史实质感,不想用就多生成几批换掉。
能生成英文名吗?比如给国际玩家看的?
本页只做中文。英文海盗名有自己的教名与绰号传统(Calico Jack、Blackbeard 的构词方式与中文不同),机翻式拼凑效果差,没有做。需要英文角色名可以看奇幻风格名字生成器或角色名字生成器。
生成的名字可以商用吗?会不会侵权?
海盗名是通用文化语料的随机拼合,单个组合没有独创性门槛,一般不构成著作权客体;但若把它用作商品名、角色 IP,仍建议先做商标近似检索。组合空间一万出头,撞名概率不可忽略。
50 条都附话术的话,话术为什么开始重复?
话术库只有 12 句,批内不放回分配,第 13 条起循环使用。名字本身不受影响——10368 的名字空间对 50 条的批次仍然绰绰有余,批内不会重复。
结果会上传或保存吗?
不会。洗牌、取模、拼接全部在当前页面脚本里完成,没有网络请求,也不写入任何存储。验证方法:打开开发者工具的 Network 面板,点几次「生成海盗名」,看不到任何新请求。