给定正
n
n
n面体(不一定合法,不合法就impossible
),边长为
a
a
a,进行
k
k
k次操作,每次操作取正多面体几何中心连线生成新凸壳。问
K
K
K次操作后生成的是否为正多面体,以及最终正多面体的边长。
首先,合法的正多面体只有:正四面体、正六面体、正八面体、正十二面体、正二十面体。
- 正四面体只能生成正四面体
- 正六面体操作奇数次可以生成正八面体,偶数次生成正六面体
- 正八面体操作奇数次可以生成正六面体,偶数次生成正八面体
- 正十二面体操作奇数次可以生成正二十面体,偶数次生成正十二面体
- 正二十面体操作奇数次可以生成正十二面体,偶数次生成正二十面体
接下来讨论边长变化规律:可以发现两次生成的边长关系可以由原体的内切球和生成体的外接球关系导出,因为这俩球是同一个球。那么首先我们整理一下边长 a a a与球半径 r r r关系公式:
正四面体正六面体正八面体正十二面体正二十面体内切球 r a = 6 12 \frac{r}{a} = \frac{\sqrt{6}}{12} ar=126 r a = 1 2 \frac{r}{a} = \frac{1}{2} ar=21 r a = 6 6 \frac{r}{a} = \frac{\sqrt{6}}{6} ar=66 r a = φ 2 2 3 − φ \frac{r}{a} = \frac{\varphi^2}{2\sqrt{3 - \varphi}} ar=23−φ φ2 r a = 3 3 + 15 12 \frac{r}{a} = \frac{3\sqrt{3} + \sqrt{15}}{12} ar=1233 +15 外接球 r a = 6 4 \frac{r}{a} = \frac{\sqrt{6}}{4} ar=46 r a = 3 2 \frac{r}{a} = \frac{\sqrt{3}}{2} ar=23 r a = 2 2 \frac{r}{a} = \frac{\sqrt{2}}{2} ar=22 r a = 3 φ 2 \frac{r}{a} = \frac{\sqrt{3} \varphi}{2} ar=23 φ r a = 10 + 2 5 4 \frac{r}{a} = \frac{\sqrt{10 + 2\sqrt{5}}}{4} ar=410+25 那么我们可以推出转换关系:
- 正四面体 → \rightarrow →正四面体: a 2 a 1 = 1 3 \frac{a_2}{a_1} = \frac{1}{3} a1a2=31
- 正六面体 → \rightarrow →正八面体: a 2 a 1 = 1 2 \frac{a_2}{a_1} = \frac{1}{\sqrt{2}} a1a2=2 1
- 正八面体 → \rightarrow →正六面体: a 2 a 1 = 2 3 \frac{a_2}{a_1} = \frac{\sqrt{2}}{3} a1a2=32
- 正十二面体 → \rightarrow →正二十面体: a 2 a 1 = φ 2 3 − φ × 2 5 + 10 \frac{a_2}{a_1} = \frac{\varphi^2}{\sqrt{3 - \varphi} \times \sqrt{2 \sqrt{5} + 10}} a1a2=3−φ ×25 +10 φ2
- 正二十面体 → \rightarrow →正十二面体: a 2 a 1 = 5 + 3 6 φ \frac{a_2}{a_1} = \frac{\sqrt{5} + 3}{6 \varphi} a1a2=6φ5 +3
至此,可以通过递推得到答案。
Code#include
#pragma gcc optimize("O2")
#pragma g++ optimize("O2")
#define int long long
#define double long double
#define endl '\n'
using namespace std;
const int N = 2e5 + 10, MOD = 1e9 + 7;
double K[20];
int nxt[20], n, k;
double a;
void init(){
cout a >> k;
if(n != 4 && n != 6 && n != 8 && n != 12 && n != 20){
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?