象数 XIANGSHU
象数/起卦的数学
可复算 · 可审计

起卦的数学

我们如何把三千年前的“取数”传统,写成今天可以阅读、复现、审计的程序。

CHAPTER 00

每一卦背后,都是同一种数据结构。

无论你用铜钱、蓍草、时间,还是一段哈希,象数最终都把结果折叠为六个爻位。每一位只可能是 6、7、8、9 四种状态。

line in { 6 老阴, 7 少阳, 8 少阴, 9 老阳 }
7 / 8 为静爻,不变
6 / 9 为动爻,本位翻转形成变卦

-> 六爻自下而上,确定本卦
-> 动爻位置,确定变卦
CHAPTER 01

铜钱六爻:最朴素的二项分布。

三枚铜钱,正反按 3 或 2 计点,三枚之和恰好覆盖 6、7、8、9 四种状态。每爻独立,连掷六回。

传统

取数过程

正 = 3,反 = 2
三枚和 in { 6, 7, 8, 9 }
-> P(6)=1/8, P(7)=3/8, P(8)=3/8, P(9)=1/8

概率分布

6 老阴1/80.125
7 少阳3/80.375
8 少阴3/80.375
9 老阳1/80.125
CHAPTER 02

大衍筮法:不对称的真分布。

五十蓍草去一,剩四十九,经分二、挂一、揲四、归奇,三变成一爻,十八变成一卦。它的重要性不只在仪式,而在概率分布与铜钱法不同。

传统

取数过程

49 -> 分二 -> 挂一 -> 揲四 -> 归奇
三变成一爻,十八变成一卦
-> P(6)=1/16, P(7)=5/16, P(8)=7/16, P(9)=3/16

概率分布

6 老阴1/160.0625
7 少阳5/160.3125
8 少阴7/160.4375
9 老阳3/160.1875
大衍之数五十,其用四十有九。分而为二以象两,挂一以象三,揲之以四以象四时。
系辞上传 · 第九
CHAPTER 03

梅花起卦:把取数改写为模运算。

邵雍的发明,是把起卦从随机过程改写成确定性算术。任意整数皆可入卦,时间也是整数。

以年月日时为种子

上卦 = (年支 + 月 + 日) mod 8
下卦 = (上式 + 时辰) mod 8
动爻 = (年支 + 月 + 日 + 时辰) mod 6

以两个数字为种子

上卦 = A mod 8
下卦 = B mod 8
动爻 = (A + B) mod 6
CHAPTER 04

新派万物起卦:输入先变成稳定字节。

文字、诗、音频文件、图像文件,只要能被稳定字节化,就能进入同一条 SHA-256 摘要管线。

01

输入

text / poem / audio / image

02

字节

UTF-8 text / raw file bytes

03

摘要

SHA-256 -> 32 bytes

04

取数

digest bytes -> six bands

05

查表

binary -> 64 hexagrams

同样的现代输入永远得到同样的卦。文字/诗由摘要前 6 个字节的奇偶定阴阳,第 7 个字节定动爻;音频/图像以摘要字节的六段均值与中位数比较定阴阳,偏离最大的段定动爻。

CHAPTER 05

随机性来自哪里?

传统派:加密级伪随机

铜钱投掷、蓍草分堆调用 Ruby SecureRandom,由操作系统提供随机源。

coin = SecureRandom.random_number(2)

新派:完全确定

新派方法默认不引入随机性。同样的字节序列,就是同样的卦象。

same bytes -> same SHA-256 -> same hexagram
CHAPTER 06

它能算准什么,又不能算准什么?

能。在数学意义上,它能算准两个一模一样的新派输入会得到同一个卦,也能算准大衍法中少阴出现概率为 7/16。

它不能算准你明年会不会涨工资,因为概率分布与你的工资之间没有因果链条。象数把数学部分做到可复算,至于文化与解释,我们留给你自己判断。

象数加到主屏,读到、看到、想到的瞬间就能起一卦。