有机化学之阴间命名法
BrotherCall · · 个人记录
阴间命名法
目前只会烷烃和烯烃的。
主链的选择
烷烃:最长的,支链最多的。
烯烃:包含双键的最长的,支链最多的。
编号端点的选择
什么叫 "编号端点的选择" ?就是说主链有两个端点,要选一个点作为编号的 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 - 正丙基 辛烷 。
其他题都是一样的分析方法不再赘述了。