有机化学之阴间命名法

· · 个人记录

阴间命名法

目前只会烷烃和烯烃的。

主链的选择

烷烃:最长的,支链最多的。

烯烃:包含双键的最长的,支链最多的。

编号端点的选择

什么叫 "编号端点的选择" ?就是说主链有两个端点,要选一个点作为编号的 1 号点。

选择方式转化成代码貌似就是这样。

bool compare(node s1 , node s2) {
    for(int i=1;i<=n;i++) {
        if(s1.sum[i] < s2.sum[i]) return true;
        if(s1.sum[i] > s2.sum[i]) return false;
    }
    return true;
}

烷烃

烷烃结构的优先级是 甲基 乙基 丙基 ……

那么两个端点都作为 1 号点试一下。

先比甲基位置编号之和哪个小,如果左端点的结果小那么左端点为 1 号点 ,反之右端点为 1 号点。如果相同再比乙基,再相同就比丙基,真的很像是 sort 的 cmp 函数。

烯烃

先比双键,再比甲基 乙基 丙基 ……

命名方法

烷烃

先确定是什么烷,这个由主链的碳数决定。

然后再按结构的优先级依次以 位置,位置 ... — a1结构 — 位置,位置 ... — a2结构 — ...... — m烷 的方式把这个物质写出来。

比如 2,2,5 - 三甲基 - 3 - 乙基 己烷 。己烷说明主链是六个碳;2,2,5 - 三甲基 说明 2 号碳上连了俩甲基,5 号碳上连了一甲基,一共三个所以写三甲基;3 - 乙基 说明 3 号碳上连了一个乙基。图形自行脑补。

烯烃

大部分都和烷烃一样,就是在 m烯 之前需要加上数字 k - m烯 表示 k 和 (k + 1) 号碳之间连了一个双键。

比如 2,5,6 - 三甲基 - 2 - 庚烯 。庚烯说明主链上 7 个碳,双键在 2 号碳 和 3 号碳 之间,2号5号6号碳上各连了一个甲基。

Example

主链是选红线或绿线(其实两者等价),有 8 个碳。

那为什么不选蓝色呢,也是 8 个碳。

因为选蓝色只有两条支链,而选红或绿有四条支链。

优先选支链多的。

那是选左端点为 1 号碳还是右端点呢?

如果选左端点,就是 3,6,7 - 三甲基 - 5 - 正丙基 辛烷。

如果选右端点,就是 2,3,6 - 三甲基 - 4 - 正丙基 辛烷。

显然 2 + 3 + 6 = 11 < 3 + 6 + 7 = 16 , 所以最终的命名为 2,3,6 - 三甲基 - 4 - 正丙基 辛烷

其他题都是一样的分析方法不再赘述了。