虚拟公司生成器

按地区、字号、行业、组织形式拼装公司名,用固定种子的线性同余算法只在三个词库的下标上取样。同一种子必得同一批结果,打开就能看到与复算表一致的五条示例。

按回车立即重生成,范围 1~2147483646。
按回车立即重生成,范围 1~50 条。
字号是常量,不参与随机;随机只落在地区、行业、组织形式三个词库下标上。
只影响展示,不改变随机序列。
生成条数—
不重复名称数—
地区词库长度—
组织形式词库长度—
当前种子—

提示:两个数字框按回车立即重生成;字号框按 Ctrl/Cmd + Enter 应用。结果仅用于演示与测试,绝不能用于工商注册。

不同种子的生成结果对照(数值与名称均由本页脚本实时计算)

种子第 1 条第 2 条第 3 条不重复数

对照表第一行是基准种子,与完整示例同参数;对照表固定按 5 条取样,改动字号会全表重算。

使用方法

  1. 先填固定种子。默认 20261107,这是数值复算表使用的基准种子。种子决定整条随机序列,改一位数字,整批结果就会换成另一组;同一种子无论刷新多少次都保持不变。
  2. 再填数量与字号。生成数量默认 5,字号默认「云启」。字号是常量,不参与随机;随机只落在地区、行业、组织形式三个词库的下标上,所以改字号只会换掉中间那截文字。
  3. 三种触发方式。两个数字框按回车立即重生成;字号框按 Ctrl/Cmd + Enter 应用新字号,裸回车只换行;输出格式用下拉框切换,只影响展示,不改变序列。
  4. 读结果看重复。结果区用 role="alert" 标注,逐条列出公司名并报「不重复名称数」;五张卡片对应条数、去重数、两个词库长度与当前种子,方便一眼看出有没有撞名。
  5. 核对与导出。对照表默认 12 行、可再展开 2 行,导出 CSV 带 BOM、复制按 TSV 分列。种子留空、填非数字、超出范围,或字号被清空,红框会写明具体原因,不会静默拿 0 或默认种子顶替。

这个工具能解决什么问题

一是给测试用例提供可回放的假数据。写单元测试、填充演示数据库、做截图回归时,最怕「每次跑数据都不一样」导致断言失败或截图比对全是差异。把种子写进用例,同一种子必得同一批公司名,问题可以精确复现,缺陷单里附上种子就够了。

二是给界面原型补一批像样的占位名称。表格、卡片、下拉列表需要几十条公司名做排版预览,手编既慢又容易重名;本页一次生成,长度与结构统一,看起来像真实名录但完全虚构,不会误用真实企业信息。

三是教学演示「随机」与「可复现」的区别。同一段代码换个种子就换一批结果,学生能直观看到随机序列由种子唯一决定,而不需要任何外部随机源。有些目录把它标成虚拟公司生成器,用途也限于此:生成结果绝不能用于工商注册、合同、发票、开户或任何需要真实法人主体的场景。

原理和变量:固定种子、词库下标与可复现

名称由四段拼成。公司名 = 地区 + 字号 + 行业 + 组织形式。例如北京(地区)、云启(字号)、文化(行业)、有限公司(组织形式)拼成「北京云启文化有限公司」。地区词库 5 个、行业词库 5 个、组织形式词库 3 个;字号由使用者给定,是常量,不进随机流程。

随机只在词库下标上做。生成一条名称要依次取 3 次随机数,分别落到 5、5、3 三个词库的下标上,取词规则是 Math.floor(s / 2147483647 * len),把 31 位状态映射到 0 到 len-1。字号这一段完全不抽随机数,改字号只换中间那截文字,整批结果的地区、行业、组织形式顺序保持不变 —— 这正是「同一种子可对照」的原因,也是本页与「所有字段都随机」的普通名字生成器的根本区别。

状态转移是线性同余算法。递推式为 s = (Math.imul(s, 1103515245) + 12345) 与 0x7fffffff 按位相与:Math.imul 做 32 位整数乘法,加常数后把状态限制在 31 位正整数内。这是经典的 LCG,下一状态只由上一状态和固定常数决定,没有任何外部熵;页面不调用 Math.random,也不联网取随机源,因此结果完全由种子决定。

固定种子保证可复现。因为状态转移是纯函数,给定种子、数量、字号,输出序列唯一确定。把 20261107 写进测试断言,今天、明天、换台机器跑都是同一批结果;这正是截图比对、数据回放、缺陷复现需要的性质。相反,Math.random 无法设种子,两次刷新必然不同,不适合做测试夹具。数值复算表里的五条示例就是这条序列从头跑五轮的结果。

重复是正常现象。默认样本的 5 条里「上海云启贸易有限公司」出现了两次。词库不大、序列又固定,撞名并不罕见;页面单独报「不重复名称数」,需要条条不同时可换种子或加大数量后自行筛选,但不要为了去重去改写序列 —— 那会破坏可复现性,让种子失去意义。

绝不能用于工商注册。本页只是把四个字符串拼起来,没有做名称预先核准、没有查重名与商标、没有核经营范围,也不代表任何真实存在的法人。拿它去注册、签合同、开发票、开账户、刻章或投标,属于虚构主体,可能带来法律风险;它只适用于占位文本、界面演示、测试数据与教学示例。另外 LCG 低位存在相关性、状态可预测,也不能当密码学随机数用。

完整示例(基准种子实测)

完整示例固定使用数值复算表的基准种子 、字号「云启」、生成 5 条,逐字核对:

这五条公司名不是写死在 HTML 里的,而是页面加载时用自己的 gen 函数按同一条 LCG 序列在三个词库下标上取词、拼装后再填入的,与数值复算表逐条一致。第 3 条与第 4 条相同,正是小词库加固定序列下的正常撞名。

把种子改成 20261108,整批结果会换成另一组;但改回 20261107,五条又会原样回来。这种「换种子全变、同种不变」的确定性,就是本页全部价值的来源,也是它不能拿去做真实名录的原因。

对照表与输入范围

表格列出 14 个不同种子,前 12 行直接可见,后 2 行点「加载更多」展开。每个种子都调用同一个 gen 函数,固定按 5 条取样算出前三条名称与不重复数,因此不是静态速查表:改动字号,全表名称会一起重算,而种子列与不重复数仍可对照。

第一行是基准种子 20261107,也就是默认样本与完整示例共用的锚点。其余覆盖极小种子、连续种子、常见测试常数、年份种子与三十一位上界,方便观察「种子只差 1,结果完全不同」,以及不重复数在 3 到 5 之间的波动。

两个按钮从同一份计算结果生成数据:导出 CSV 带 UTF-8 BOM,Excel 打开中文表头不乱码;复制对照表按 TSV 送进剪贴板自动分列,屏幕所见与导出所得永远一致。

结果边界与舍入

常见问题

为什么刷新多少次结果都一样?

因为用的是固定种子的线性同余算法,状态转移是纯函数,页面也不调用 Math.random。种子不变,整条序列和输出就完全不变。

换一个种子会怎样?

哪怕只差 1,整批公司名也会换成另一组,但新种子同样可复现。数值复算表的基准是 20261107,改回它就恢复原结果。

生成的公司名能去注册吗?

绝对不能。页面没做名称核准、没查重名商标、没核经营范围,也不代表真实法人。它只适用于占位文本、界面演示与测试数据。

为什么有两条一模一样?

地区、行业、组织形式词库分别是 5、5、3,序列又固定,撞名很正常。不重复名称数只是统计,不会为了凑数改写序列。

字号能随机吗?

不能。字号是常量,随机只在三个词库的下标上做;这样改字号时其余三段顺序不动,才好与复算表逐条对照。

能自己改词库吗?

本页词库固定为 5、5、3,以保证与数值复算表一致。词库长度一变,取词公式里的 len 就变,整条结果会跟着变。

能当密码或令牌用吗?

不能。LCG 状态可预测、低位有相关性,属于演示用的弱随机,不是密码学随机源,涉及安全的场景请另用专用工具。

会联网或上传吗?

不会。名称全在当前浏览器拼装,页面不发起网络请求,也不写 Cookie 或 localStorage,Network 面板始终是空的。

相关工具