使用方法
- 先选「风格」:中文地名风是「前缀 + 后缀(+ 尾缀)」的中文地名构词;英文音译风是英文前缀加地名词尾拼成的拉丁字母地名;奇幻城邦风用一组自造音节拼出架空世界里的城邦名。
- 填「生成数量」,可填 1 到 200 的整数。中文地名风带尾缀时有 720 种组合,英文与奇幻风各有 144 种;数量超过某一风格的可选组合数时,页面会提示只能给到组合数的上限。
- 「随机种子」是复现的关键:种子相同、其余参数相同,生成的这一批名称逐条相同。默认 20261011。想换一批就点「换一批」,它会把种子加一并重新生成,方便把某一批结果记下来再分享给别人复现。
- 「城市尾缀」只在中文地名风下生效。勾上会追加 市、城、镇、港、堡、关 中的一个,得到「云洲堡」这类完整的城市名;不勾就只保留「前缀 + 后缀」,得到「平水」这类更短的地名。
- 点「生成」或按回车立即得到名称列表,同时给出条数、词库组合数与本次抽样次数等统计。
- 列表超过 12 条时底部出现「加载更多」,每次追加 12 条;「复制全部」复制整份清单,「导出 CSV」导出序号与名称两列,文件以 UTF-8 BOM 开头。
这个城市名字生成器能解决什么问题
写小说、跑团剧本、游戏关卡、地图标注、品牌命名提案草稿,都需要一批「像地名」又彼此不重复的名字。靠自己想很容易陷入两种困境:要么反复用同几个字眼,要么硬凑出「塔那托斯之影」这类读不顺、意象也不统一的名词。本生成器把地名拆成「前缀 + 后缀(+ 尾缀)」三段式,每段都取自一份人工筛选过的词表,拼出来的名字在读音与意象上都保持一致,并且可以用随机种子把某一批结果固定下来,便于团队之间共享同一份命名清单。
它适用于虚构世界的地名底稿、剧本与小说里的城镇命名、地图与沙盘标注、桌面游戏的城市名批量备选,以及在起名阶段快速产出一批候选词供人工二次筛选。
组合数与生成原理
每种风格的可选组合数就是各段词表长度相乘,因为三段各取一个是相互独立的。
- 中文地名风:前缀 12 个 × 后缀 10 个 × 尾缀 6 个 = 720 种组合;不勾尾缀时少了尾缀这一维,变成 12 × 10 = 120 种。
- 英文音译风:前缀 12 个 × 后缀 12 个 = 144 种组合。
- 奇幻城邦风:前缀 12 个 × 后缀 12 个 = 144 种组合。
- 三种风格合计 1008 种可选组合。
为什么不直接随机抽汉字拼名字?因为汉字是表意文字,任意两个字的组合很可能语义打架或读音拗口,例如把「沧」和「镇」拼在一起还行,把「锦」和「水」拼在一起就有点怪,而随机两个字连读时更容易出现生僻音。用「地名常用前缀 + 地貌常用后缀(+ 行政尾缀)」的三段式,每个位置的字都来自同一个语义场:前缀多是临、望、沧、玉这类带有方位或质感含义的字,后缀是水、山、河、川这类地形字,尾缀是市、城、镇这类通名。这样拼出来的名字天然读音顺、意象统一,接近真实地名的构词习惯,这也是汉语地名里「专名 + 通名」结构的常见做法。
种子化随机是另一个关键。本页用一条线性同余发生器(LCG)推进随机数:seed = (seed × 1103515245 + 12345) & 0x7fffffff,再用 r = seed ÷ 0x7fffffff 把状态映射到 0 到 1 之间,最后用 r 乘以词表长度取整去选词。因为整个过程只依赖初始种子,没有任何外部随机源,所以「种子相同则结果相同」是可验证的:把种子和参数抄给同事,他那边生成的这批名字与你这边逐条一致。这也是它适合写进剧本,把某一章的城名清单固定下来的原因。
第三个机制是碰撞处理。720 种组合里随机抽 12 个,看似很难撞车,实际上按生日问题的算法,出现至少一次重复的概率是 8.80%,也就是十二次里大约有一次会撞;反之,12 个全不重复的概率只有 91.20%。更直观的估算是期望碰撞对数:从 12 条里任取两条的组合数是 C(12,2) = 66,除以组合总数 720 得到 9.17%,与 8.80% 是同一个量级。所以生成逻辑不能只是「抽满数量就返回」,本页采用「先抽、发现重复就跳过、继续补抽,直到凑满所需条数」,这样同一批结果里不会出现重名。
完整示例(数值仅作演示)
示例条件:风格为中文地名风,勾选城市尾缀,生成数量 12,随机种子 20261011。
- 抽出的 12 条为:平陵堡、宁海市、宁川城、嘉山市、嘉城港、云山城、白溪镇、临川堡、洛山关、宁海城、白海城、云洲堡。
- 去重后仍为 12 条,本次抽样正好 12 次,没有触发补抽,属于运气偏好的一次;这不代表可以省掉去重补抽,因为同一参数下出现重复的概率仍有 8.80%。
- 词库组合数 720 种,本次只用到其中 12 种,占比不到 2%,换个种子就能得到完全不重合的另一批。
- 把风格换成英文音译风、其余不变,词库变为 144 种;换成奇幻城邦风同样是 144 种。
- 三风合计 1008 种组合,是本页一次能覆盖的名称空间上限。
把示例这 12 条名称按逗号合并成一行,就是 平陵堡, 宁海市, 宁川城, 嘉山市, 嘉城港, 云山城, 白溪镇, 临川堡, 洛山关, 宁海城, 白海城, 云洲堡,可直接粘进剧本大纲或地图标注文档。示例中的名称均为虚构,不对应任何真实行政区划。
三套词库与后缀词源对照表
下表列出三种风格的构词方式、词库规模与常用后缀的含义,方便按需要的调性挑风格。
| 风格 | 构词 | 组合数 | 后缀示例与含义 |
|---|---|---|---|
| 中文地名风 | 前缀 + 后缀 + 尾缀 | 12 × 10 × 6 = 720 | 水 山 河 川 阳 海:地貌与方位;尾缀 市 城 镇 港 堡 关:聚落与关隘 |
| 英文音译风 | 前缀 + 后缀 | 12 × 12 = 144 | -ford 渡口、-dale 山谷、-ton 围场、-bury 堡垒 |
| 奇幻城邦风 | 前缀 + 后缀 | 12 × 12 = 144 | mara thas dara wynn 等自造音节,只求读音统一 |
英文后缀并非随便取的字母组合,它们都来自真实地名里的构词成分:-ford 指渡口,河上可涉水而过的地方;-dale 指山谷;-ton 指围场或村落,源自古英语的圈地;-bury 指堡垒或设防的聚落。用它们收尾,英文名会有「真实地名」的听感,例如带 -ford 结尾的名字听起来就像河畔城镇。奇幻风则刻意回避真实词源,改用两个都无实义的音节拼接,避免读者产生现实联想。
结果边界、去重与适用说明
- 生成数量范围是 1 到 200 的整数。中文地名风带尾缀有 720 种组合,仍能满足 200 条互不重复;中文风不勾尾缀只有 120 种,英文与奇幻风各只有 144 种,请求数超过组合数时只能给到组合数上限,页面会明确提示。
- 随机种子的取值范围是 0 到 2147483646 的整数,对应状态用的 31 位掩码空间;种子相同、参数相同则结果逐条相同。
- 名称一旦生成就按首次出现的顺序排列,去重采用完全字符串相等比较,不做拼音或大小写归一化,因此「平水」与「平水城」会被视为两个不同的名字。
- 列表每 12 条一屏,「加载更多」每次追加 12 条;「复制全部」与「导出 CSV」始终针对全部结果,与已展开的行数无关。
- 导出 CSV 以 UTF-8 BOM 开头,便于 Excel 直接双击打开;用命令行读取时需要先剥掉 BOM。
- 中文地名风的名字是「前缀 + 后缀」的机械拼接,个别组合可能恰好与现实中已存在的村镇同名,这属于概率事件,不代表任何指向。
- 本页产出的全部为虚拟名称,不查询商标、不查询域名注册状态、也不做工商查重。要用于品牌或产品命名,必须另行检索商标数据库与域名可用性。
常见问题
为什么我点了两次「生成」,结果不一样?
点「生成」用的是种子框里的值,同一个种子会得到同一批结果;如果你点的是「换一批」,它会把种子加一再重新生成,所以结果会变。想复现某一批,把当时显示的种子记下来重新填回去即可。
720 种组合里抽 12 个,真的会撞车吗?
会。按生日问题计算,出现至少一次重复的概率是 8.80%,也就是大约每十二批里有一批会撞;完全不重复的概率是 91.20%。所以生成时不能只抽满数量就返回,必须先抽、跳过重复、再补抽到满。
为什么英文后缀是 -ford、-dale、-ton、-bury 这几个?
它们都是真实地名里的构词成分:-ford 是渡口,-dale 是山谷,-ton 是围场或村落,-bury 是堡垒或设防聚落。用真实词尾收尾,名字才有地名的听感;奇幻风则刻意用无实义音节,避免读者联想到现实地名。
为什么不直接随机抽汉字拼名字?
随机汉字很容易语义打架或读音拗口。本页把名字拆成前缀、后缀、尾缀三个语义场,前缀多带方位或质感含义,后缀是水、山、河、川这类地形字,尾缀是市、城、镇这类通名,拼出来读音更顺、意象也更统一。
生成的地名能直接用于商标或域名吗?
不能直接使用。本页只做名称生成,不查商标、不查域名注册状态,也不做工商查重。同一批名字里有的可能已被注册。要用于品牌或产品,请自行到商标数据库与域名注册商处检索确认。
数量填到 200 会怎样?
中文地名风带尾缀有 720 种组合,填 200 可以给到 200 条互不重复的名称;但中文风不勾尾缀只有 120 种、英文与奇幻风各只有 144 种,此时请求数超过组合数,页面只会给出组合数上限那么多条并给出提示。
这个工具免费吗?
免费,无需注册即可使用。
输入的数据安全吗?
安全。计算在当前浏览器本地完成,不会上传输入内容。