Expand description
置换的宇称 —— 一个概念,一处实现。
四面体手性、丙二烯轴手性、反应产物的重定基、SMARTS 的参照系换算,做的都是
同一件事:同一组配体的两种排列,差的是奇数次对换还是偶数次。奇数就要把
@ 与 @@ 对调。
这份先前在四个地方各写了一遍(omgkit-io 的 smiles、smarts::mol,
omgkit-match 的 matcher、react)。当时四份给出的答案一致,可**“当前一致”
不是性质,是巧合**:边界条件本来就已经分岔了 —— 有一份长度对不上时返回
false(按偶处理,不翻),另外三份返回 None(说不出来)。四份里改一份,
分子会在一条路上是自己、在另一条路上是对映体,而两边各自自洽、谁都不报错。
判据里那一份不算重复。 omgkit-io/tests/canonical_invariance.rs 里有一份
独立实现,那是故意的:判据拿被测代码当真值就什么都没验。
Functions§
- permutation_
is_ odd from→to置换的宇称。两者不是同一多重集时返回None。