如何动态按规则在方形atomic orbitals中布局原子电子?
方形轨道电子动态排布算法设计需求
我需要将原子电子排布为方形轨道结构(常规为均匀圆形分布),要求在方形轨道外围的预设槽位中,根据电子壳层的电子数放置电子,无需手动编写118种原子的布局代码,实现动态排布效果。
参考布局示例
- 8电子壳层:填满8个预设槽位
- 7~1电子壳层:按平衡规则减少对应槽位的电子(如17电子需移除垂直中间的一个槽位电子,3电子形成类三角布局)
- 18电子壳层系列:对应18个预设槽位的平衡排布
电子壳层数据
const SHELLS = `Hydrogen,1 Helium,2 Lithium,2:1 Beryllium,2:2 Boron,2:3 Carbon,2:4 Nitrogen,2:5 Oxygen,2:6 Fluorine,2:7 Neon,2:8 Sodium,2:8:1 Magnesium,2:8:2 Aluminium,2:8:3 Silicon,2:8:4 Phosphorus,2:8:5 Sulfur,2:8:6 Chlorine,2:8:7 Argon,2:8:8 Potassium,2:8:8:1 Calcium,2:8:8:2 Scandium,2:8:9:2 Titanium,2:8:10:2 Vanadium,2:8:11:2 Chromium,2:8:13:1 Manganese,2:8:13:2 Iron,2:8:14:2 Cobalt,2:8:15:2 Nickel,2:8:16:2 Copper,2:8:18:1 Zinc,2:8:18:2 Gallium,2:8:18:3 Germanium,2:8:18:4 Arsenic,2:8:18:5 Selenium,2:8:18:6 Bromine,2:8:18:7 Krypton,2:8:18:8 Rubidium,2:8:18:8:1 Strontium,2:8:18:8:2 Yttrium,2:8:18:9:2 Zirconium,2:8:18:10:2 Niobium,2:8:18:12:1 Molybdenum,2:8:18:13:1 Technetium,2:8:18:13:2 Ruthenium,2:8:18:15:1 Rhodium,2:8:18:16:1 Palladium,2:8:18:18 Silver,2:8:18:18:1 Cadmium,2:8:18:18:2 Indium,2:8:18:18:3 Tin,2:8:18:18:4 Antimony,2:8:18:18:5 Tellurium,2:8:18:18:6 Iodine,2:8:18:18:7 Xenon,2:8:18:18:8 Caesium,2:8:18:18:8:1 Barium,2:8:18:18:8:2 Lanthanum,2:8:18:18:9:2 Cerium,2:8:18:19:9:2 Praseodymium,2:8:18:21:8:2 Neodymium,2:8:18:22:8:2 Promethium,2:8:18:23:8:2 Samarium,2:8:18:24:8:2 Europium,2:8:18:25:8:2 Gadolinium,2:8:18:25:9:2 Terbium,2:8:18:27:8:2 Dysprosium,2:8:18:28:8:2 Holmium,2:8:18:29:8:2 Erbium,2:8:18:30:8:2 Thulium,2:8:18:31:8:2 Ytterbium,2:8:18:32:8:2 Lutetium,2:8:18:32:9:2 Hafnium,2:8:18:32:10:2 Tantalum,2:8:18:32:11:2 Tungsten,2:8:18:32:12:2 Rhenium,2:8:18:32:13:2 Osmium,2:8:18:32:14:2 Iridium,2:8:18:32:15:2 Platinum,2:8:18:32:17:1 Gold,2:8:18:32:18:1 Mercury,2:8:18:32:18:2 Thallium,2:8:18:32:18:3 Lead,2:8:18:32:18:4 Bismuth,2:8:18:32:18:5 Polonium,2:8:18:32:18:6 Astatine,2:8:18:32:18:7 Radon,2:8:18:32:18:8 Francium,2:8:18:32:18:8:1 Radium,2:8:18:32:18:8:2 Actinium,2:8:18:32:18:9:2 Thorium,2:8:18:32:18:10:2 Protactinium,2:8:18:32:20:2 Uranium,2:8:18:32:21:9:2 Neptunium,2:8:18:32:22:9:2 Plutonium,2:8:18:32:24:8:2 Americium,2:8:18:32:25:8:2 Curium,2:8:18:32:25:9:2 Berkelium,2:8:18:32:27:8:2 Californium,2:8:18:32:28:8:2 Einsteinium,2:8:18:32:29:8:2 Fermium,2:8:18:32:30:8:2 Mendelevium,2:8:18:32:31:8:2 Nobelium,2:8:18:32:32:8:2 Lawrencium,2:8:18:32:32:8:3 Rutherfordium,2:8:18:32:32:10:2 Dubnium,2:8:18:32:32:11:2 Seaborgium,2:8:18:32:32:12:2 Bohrium,2:8:18:32:32:13:2 Hassium,2:8:18:32:32:14:2 Meitnerium,2:8:18:32:32:15:2 Darmstadtium,2:8:18:32:32:16:2 Roentgenium,2:8:18:32:32:17:2 Copernicium,2:8:18:32:32:18:2 Nihonium,2:8:18:32:32:18:3 Flerovium,2:8:18:32:32:18:4 Moscovium,2:8:18:32:32:18:5 Livermorium,2:8:18:32:32:18:6 Tennessine,2:8:18:32:32:18:7 Oganesson,2:8:18:32:32:18:8` .trim() .split('\n') .map(x => { const [a, b] = x.split(',') const c = b.split(':').map(x => parseInt(x, 10)) return { name: a, shells: c } })
约束条件
- 电子壳层的最大电子数分别为2、8、18、32、32
- 电子必须放入对应壳层的预设槽位(如8电子对应8个槽,18电子对应18个槽),不可沿边缘均匀分布
- 布局需保持平衡性,若存在多种平衡布局,任选其一即可
实现要求
可使用等宽字体的x(代表电子)和-(代表空槽位)模拟布局,无需完整前端框架实现,求可动态生成布局的简单算法,而非硬编码118种原子的布局。
内容的提问来源于stack exchange,提问作者Lance Pollard
相关产品推荐
相关产品推荐

