随机方向生成器:八方位随机方向在线生成

随机方向生成器用固定种子的伪随机算法,从北、东北、东、东南、南、西南、西、西北八个方位中抽取方向,可附加 0 到 30 度的角度偏移做细化。所有结果都可由同一种子复算,全程在浏览器本地完成,不联网也不上传。

勾选后每个方向随机附加 0 到 30 度偏移

上方已带默认示例(种子 9876543、数量 8、含角度细化),按回车即可重算;同一种子永远得到同一串方向,方便复核与分享。下方方位对照表共 14 行,点「加载更多」看全表,可导出 CSV(带 BOM)或复制 TSV。

使用方法

  1. 打开页面默认就带示例:数量为 8、种子为 9876543、勾选角度细化,结果区已显示八个带偏移的随机方向,你不需要先输入任何东西。
  2. 改「生成数量」决定要抽几个方向;改「随机种子」可切换不同的确定序列,相同种子必然得到相同结果。
  3. 勾选「含角度细化」后,每个方向会再派生一个 0 到 30 度的偏移,让结果更细;取消勾选则只给纯方位词。
  4. 在输入框里按回车也能立即重算;点「复制结果」把整串方向复制到剪贴板。
  5. 下方对照表列出八方位基准角度与固定种子的示例输出,点「加载更多」展开,可导出 CSV 或复制 TSV。
  6. 本页不联网、不写本地存储,刷新即回到默认示例,所有计算都在你自己的浏览器里完成,输入内容不会离开设备。

这个 随机方向生成器能解决什么

很多场景需要一个「看起来随机、但又能复现」的方向结果:桌游里掷骰决定行进方位、教学演示伪随机、抽奖或分组时随机分配朝向,都希望能当场给出方向又能在事后复核。这个随机方向生成器用固定种子算法解决的就是「可复核的随机」这一需求。

第一类用途是游戏与桌游。跑团、战棋或户外定向游戏常要随机决定下一步朝向,用本工具给定种子,主持人公布种子后玩家可以自己复算,确保没有暗箱操作,公信力更强。

第二类用途是教学与算法演示。讲线性同余、伪随机序列时,八方位抽取是一个直观的例子;本工具把每一步的取模与取整都写清楚,学生能对照手算理解同一个种子如何稳定地产出序列。

第三类用途是随机决策与头脑风暴。当团队要随机选一个方向做发散讨论、或做随机漫游练习时,本工具一键给出方向,省去翻硬币或抽签的麻烦,且结果可记录种子反复使用。

第四类用途是原型与占位数据。开发地图、罗盘类应用时,先用本工具批量造一批确定性的随机方向做界面联调,比手写死数据更省事,上线前再换成真实逻辑即可。配合下方对照表的固定种子示例,你可以把联调用的方向序列固定下来,方便回归测试时反复使用,而不必每次都重新随机,保证前后两次界面表现一致。

需要强调的是,随机方向生成器 的所有抽取都在本地完成,不联网也不上传。你可以把种子和结果放心分享给别人复核,过程中没有任何数据离开你的设备。

原理和变量

本工具采用线性同余式的简化版做伪随机:每一轮先把种子更新为 s = (Math.imul(s, 1103515245) + 12345) & 0x7fffffff,再把得到的 s 除以 2147483647 乘上方位数 8 并向下取整,得到 0 到 7 的下标去取方位词。含角度细化时,再走一轮同样的更新,把新 s 除以最大值乘 31 取整,得到 0 到 30 的偏移度数。因为每一步只依赖前一步的 s,所以给定初始种子,整个序列完全确定。

八方位词库固定为北、东北、东、东南、南、西南、西、西北,按顺时针排列,下标 0 到 7 依次对应。下面变量表说明各环节含义,方便你理解方向是怎么抽出来的。

变量含义说明
seed随机种子初始整数,决定整条序列
s当前状态每轮线性同余更新
idx方位下标floor(s/MAX*8),0 到 7
off角度偏移floor(s/MAX*31),0 到 30
words方位词库八个方位按顺时针排列

完整示例

下面这组示例全部由页面算法原样得出,可直接对照你的手算。种子 9876543、数量 8、含角度细化:第一轮 s 更新后取模得下标 1,对应「东北」,再更新一轮取偏移得 1,于是第一行「东北(偏移 1°)」;第二轮得「北(偏移 15°)」,第三轮得「南(偏移 26°)」,依次类推得到八行结果,与上方结果区、下方对照表完全自洽。

如果你想验证手算,把种子代入 s=(s*1103515245+12345)&0x7fffffff,再算 floor(s/2147483647*8) 取方位,勾选细化时再走一轮算 floor(s/2147483647*31) 取偏移,逐步做完必然和本工具一致。这套方法是你在不支持本页的环境里手动复现结果的可靠办法。

输入
数量=8 种子=9876543
含角度细化=是
输出
东北(偏移 1°)
北(偏移 15°)
南(偏移 26°)
… 共 8 行
核心公式
s=(s*1103515245+12345)&0x7fffffff
idx=floor(s/MAX*8)

方位基准与种子示例对照表

下表列出八方位的基准角度,以及固定种子 9876543 前六次抽取的方向与偏移(前 12 行直接展示,点「加载更多」展开剩余项)。表里所有数据都由本页同一算法得出,方便你对照手算与复核。

项目方位角度(度)说明
基准方位北0正北基准
基准方位东北45北偏东
基准方位东90正东基准
基准方位东南135东偏南
基准方位南180正南基准
基准方位西南225南偏西
基准方位西270正西基准
基准方位西北315西偏北
种子示例东北(偏移 1°)1种子 9876543 第 1 次
种子示例北(偏移 15°)15第 2 次
种子示例南(偏移 26°)26第 3 次
种子示例西(偏移 16°)16第 4 次
种子示例南(偏移 23°)23第 5 次
种子示例西南(偏移 4°)4第 6 次

结果边界与错误提示

常见问题

为什么同一个种子每次结果都一样?

因为本工具使用固定种子的线性同余算法,序列完全由初始种子决定,所以相同种子必然产出相同方向。这正是「可复核随机」的设计目的,方便你分享种子让别人验证。

角度偏移是怎么算出来的?

在勾选细化后,算法再走一轮同样的种子更新,把新状态除以最大值乘 31 并向下取整,得到 0 到 30 的偏移度数,附加到方位词后面,让结果更细腻。

能不能只生成纯方位不要偏移?

可以。取消勾选「含角度细化」,每个方向就只输出北、东北、东这类纯方位词,不再附加角度,输出更简洁。

eight 个方位的顺序是什么?

词库按顺时针固定为北、东北、东、东南、南、西南、西、西北,下标 0 到 7 依次对应,算法只是从中按下标抽取,不改动这个顺序。

导出的 CSV 为什么带 BOM?

因为 Excel 打开无 BOM 的 UTF-8 文件时常把中文显示成乱码,BOM 能让 Excel 正确识别编码。TSV 复制走剪贴板不经文件,所以不需要 BOM。

我想换一组不同的方向怎么办?

直接修改「随机种子」为一个新整数再生成即可;种子不同,整条序列就不同。你也可以调大「生成数量」一次性拿更多方向。

我的种子和结果会上传吗?

不会。所有抽取计算在浏览器本地进行,不联网、不写存储,刷新即还原默认示例,没有任何数据离开你的设备,可以放心使用。

为什么结果区和示例不一致?

请确认种子、数量与是否勾选角度细化都和示例一致;任一不同都会得到不同的序列。保持参数一致后点「生成方向」,结果必然与手算一致。

相关工具