著名的“克莱因瓶”是啥?为啥将地球上的水倒进去也装不满?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了著名的“克莱因瓶”是啥?为啥将地球上的水倒进去也装不满?相关的知识,希望对你有一定的参考价值。

参考技术A

随着人类文明和智慧的不断前进和发展,科学技术也有了显著的飞跃,可是越是进一步 探索 ,人们越会发现这个世界上存在着太多无法解释的神秘现象和未知领域,甚至有很多是人类倾尽一生也无法解释的,就比如宇宙的多维度理论。

在科学家眼中,人类以及人类所适用的一切器物都是处于一个三维世界当中,而放眼无尽宇宙,人类和地球又是最低等也是最微小的。由此来看,存在于理论中的高维空间到底是什么样子的呢,里面的生物或者物品和我们三维又有何区别呢?

今天就先来讲一下来自四维空间的瓶子——克莱因瓶。

科学家们通过反复的研究和实验发现,这个所谓的克莱因瓶的确是符合四维空间的相关理论的,不过以目前的技术水平还无法实现该瓶子的复刻,毕竟目前已经做出来的仿品实际上是可以装满的,但是实验验算的虚拟克莱因瓶是无法被装满的,即便是把地球上的所有水都倾倒进去也无法装满。

而这个瓶子最神奇的地方就在于它底部的洞,无论使用什么办法,从任何的角度,都无法让水为之停留,就像人类制造用来计算时间的沙漏一样,一旦开始就无法结束,直至沙子全部倒完。

科学家为了进一步探究其中的奥秘,曾耗时数年进行研究和讨论,但始终没有得出一个满意的结论。

其实根据我们所熟知的相关理论,只要是容器都会有其相应的容积,在奇形怪状的瓶子也可以通过公式计算出它能容纳的物质含量。

如果真的有容器存不住水,那只能说明瓶子出现了漏洞或者空缺。可克莱因瓶却打破了人类对于常规的认知,一个完整的克莱因瓶在没有任何缺损的情况下仍然存不住水,这到底是什么原因造成的呢?难道真的是受到所谓的四维空间的影响吗?

不少科学家在反复研究后得出结论,这个瓶子只有在四维空间中才能处于装满的状态,换个角度思考,这个克莱因瓶实际上是不应该存在于人类的三维世界的,它应该是源于更高维度的领域,在那里才能解释这一切人类无法解释的谜团。

而且科学家还做过关于克莱因瓶的模拟实验,而实验的结果更是超出了所有人的预料。为了研究克莱因瓶的内部结构,科学家将一只小昆虫放入瓶口让它往里面跑直到找到出口,可没想到的是, 小虫子在里面绕了一圈之后竟然又回到了起点。

也就是说,这个所谓的四维瓶子实际上是没有尽头的,它没有起点也没有终点,受到更高维度的控制和影响,因此三维世界的我们即便用尽各种办法也始终没法将它们装满。

从数学的角度出发,克莱因瓶也就是所谓的无定向平面,一个通俗的例子就是我们写字绘画用的二维平面,它是没有内外之分的。

这个理念在刚刚提出的时候是德国的一名著名数学家克莱因发现的, 他发现这种瓶子和之前的莫比乌斯环十分相似,都是相当于无限空间的神秘物体。 而且克莱因瓶的结构是极为简单的, 底部的大洞和长长的瓶颈就是它最大的特点。

与我们日常所能见到的瓶子不同的是,这个瓶子没有边界,也就代表着它的表面是无限延伸循环的,就像二维一样,没有内部和外部,从起点出发仍然能回到起点。

和同样具有不可定向性的莫比乌斯环不同的是,我们谈论的这个神秘的瓶子是具有相对密封的曲面,是没有明显的边界的,莫比乌斯环可以被嵌入三维当中,而克莱因瓶却只能在四维甚至更高到维度中进行探究。

很多人都猜测,所谓的克莱因瓶是否真实存在,是不是只是科学家们的一个猜想,它或许无法存在于这个世界上,或许存在于宇宙的最深处,但是无法被三维世界的我们所探查到,只有当我们买入更高维度之后才能发现它的秘密,才能真正研究出它其中蕴藏的能量。

所谓的克莱因瓶和思维世界,实际上都是科学家们的猜想,只能存在于理论研究当中,而无法真正在实践中加以证明,最起码用我们目前的 科技 水平是无法达到这一高度的,但我们发现不了并不直接代表着这种东西是不存在的。

就像爱因斯坦所说的那样,假如某一天,整个世界发生了重大的灾难,只有你一个人存活了下来,那么到了那个时候门外和门内实际上都只有你一个人,那么所谓的门外是不是就等同于门内了呢。

这个其实也是科学家们对四维甚至更高维度空间的一种猜测,而克莱因瓶其实就是这样一种存在,在爱因斯坦的解释下,它的形象仿佛更鲜明了一些,所谓的门内和门外其实就是一个容器的内部和外部,而门内等同于门外,也就相当于克莱因瓶无内外的理论。

或许这个理论中的瓶子里装着的不仅仅是无尽的水源,很有可能是我们整个三维的空间,也有可能是整个宇宙都被它所涵盖,这些问题只有通过我们后续的不断研究才能得出结论。

POJ 3414 Pots

题意:两个容积分别为A,B的杯子可进行以下三种操作:

  1、倒满杯子FILL(i) 

  2、倒空杯子DROP(i)

  3、将杯子 i 中的水倒进杯子 j ,倒完后要么 i 为空,要么 j 为满。

  问操作多少次能在某只杯子中恰好得到容积为C的水及操作步骤。

分析:广度优先搜索,每次的状态是当前两只杯子分别得水量,及到此状态的操作数。状态转移的方式有:分别倒空/倒满两只,一只倒进另一只,共6种。

代码:

  1 #include <iostream>
  2 #include <cstdio>
  3 #include <cstring>
  4 #include <vector>
  5 #include <queue>
  6 #include <cmath>
  7 #include <stack>
  8 #include <set>
  9 #include <map>
 10 #include <algorithm>
 11 using namespace std;
 12 #define ll long long
 13 #define inf 0x3f3f3f3f
 14 struct node
 15 {
 16     int a,b,t;
 17     int r[210];//记录执行的是哪种操作
 18 };
 19 bool v[105][105];
 20 int a,b,c;
 21 char l[7][15]= {" " , "FILL(1)" , "FILL(2)" , "DROP(1)" , "DROP(2)" , "POUR(1,2)" ,"POUR(2,1)"};//用于打印
 22 void bfs()
 23 {
 24     int i,j;
 25     node x,y;
 26     queue<node> q;
 27     x.a=0;x.b=0;x.t=0;
 28     v[x.a][x.b]=1;
 29     q.push(x);
 30     while(!q.empty())
 31     {
 32         y=q.front();
 33         q.pop();
 34         if(y.a==c||y.b==c)
 35         {
 36             printf("%d\n",y.t);
 37             for(i=1;i<=y.t;i++)
 38             {
 39                 printf("%s\n",l[y.r[i]]);
 40             }
 41             return ;
 42         }
 43         for(i=1;i<=6;i++)
 44         {
 45             if(i==1)//第一种方式,倒满A
 46             {
 47                 x.b=y.b;
 48                 x.a=a;
 49                 y.r[y.t+1]=1;
 50             }
 51             if(i==2)//第二种方式,倒满B
 52             {
 53                 x.a=y.a;
 54                 x.b=b;
 55                 y.r[y.t+1]=2;
 56             }
 57             if(i==3)//第三种方式,倒空A
 58             {
 59                 x.b=y.b;
 60                 x.a=0;
 61                 y.r[y.t+1]=3;
 62             }
 63             if(i==4)////第四种方式,倒空B
 64             {
 65                 x.a=y.a;
 66                 x.b=0;
 67                 y.r[y.t+1]=4;
 68             }
 69             if(i==5)//第五种方式,A——>B
 70             {
 71                 if(y.a<b-y.b)A不能倒满B
 72                 {
 73                     x.b=y.a+y.b;
 74                     x.a=0;
 75                 }
 76                 else
 77                 {
 78                     x.b=b;
 79                     x.a=y.a+y.b-b;
 80                 }
 81                 y.r[y.t+1]=5;
 82             }
 83             if(i==6)//第六种方式,B——>A
 84             {
 85                 if(y.b<a-y.a)B不能倒满A
 86                 {
 87                     x.a=y.a+y.b;
 88                     x.b=0;
 89                 }
 90                 else
 91                 {
 92                     x.a=a;
 93                     x.b=y.b+y.a-a;
 94                 }
 95                 y.r[y.t+1]=6;
 96             }
 97             if(!v[x.a][x.b])
 98             {
 99                 v[x.a][x.b]=1;
100                 x.t=y.t+1;
101                 for(j=1;j<=x.t;j++)//将前一步的操作序列复制到本状态本步前
102                 {
103                     x.r[j]=y.r[j];
104                 }
105                 q.push(x);
106             }
107         }
108     }
109     printf("impossible\n");//每种情况都试一遍还不能达到
110 }
111 int main()
112 {
113     int i,j;
114     while(~scanf("%d %d %d",&a,&b,&c))
115     {
116         memset(v,0,sizeof v);
117         bfs();
118     }
119     return 0;
120 }

 

以上是关于著名的“克莱因瓶”是啥?为啥将地球上的水倒进去也装不满?的主要内容,如果未能解决你的问题,请参考以下文章

克莱因瓶的恐怖意义是啥?

clifford stoll是怎么作出克莱因瓶的

克莱因瓶装水动态图 三维空间制造不出来克莱因瓶

8字形 克莱因瓶 matlab

求克莱因瓶的图像或视频,需要高清晰的,不要普通的。那些科技馆能看到它的样品。很想知道。

poj1606 Jugs