我试试用我的方式说说如何构造n维空间吧。

n维空间在n大于3后,说要画出来,有点难以想象。
但从数学的角度看,高维空间这个概念还算比较普通、容易理解的。

与其解释,不如快快开始。我选择用图(Graph)的方法来描述想说的东西,而且,我选的是特殊的某类空间,并且不是大多数人通常理解的空间。我选的空间的各个维度上只有一个比特——值只能在0和1之间取。数学符号表示是

下面会看到,这个模型会让人想到信息论里格雷码。但那是另一码事;我事实上忘了这种图论模型的名字,只是知道它而已。这里选择它,只是因为它的空间非常简单,我觉得应会比较容易感受维度的扩张如何进行。

首先希望大家放下对维度的先入之见。此处的维度,仅是@Ent 所说的自由度,并非大家通常理解的坐标轴的延伸方向。

开始吧。
首先是,

零维空间,没有维度——也即连一个可以取0-1值的比特都容不下。

但给它扩张一个维度后,

就有点意思了。原先的一个点获得了一个方向分成了两头。此时图示对应的空间可以容纳一个取0-1值的比特,这个空间即成为一维的空间。

再扩张,

这是空间可以容纳两个比特了,也即可以表示种状态。在该图里,开始可以看到维度是如何扩充的了:图的底下那条边,正是前一张图;将该条单边做一份拷贝,然后将原图和拷贝的两个顶点连接起来,就得到了这张图。

再按上述的方式扩张一次,

此时,该图拥有了个顶点,可表示的状态也增长到这个数目;它所对应的空间扩张成了三维的,能容纳三个在0和1之间取值的比特。这里有个比较有趣的现象:
许多人倾向将这个图看作是立方体,哪怕他只是一个图(Graph)。

再来,应该是四维空间。大家可能都见过很多次的四维空间的标志物:

即这个问题的首页图:超立方体(Hypercube)。
事实上确实会得到超立方体,

(解释一下,首页图片上的这个图形也是两个立方体的八个顶点互相连接,只不过下面这个图是两个大小相同的立方体,而上面那个看起来一大一小)
如果你眼力比较好,可以看出这个图跟本问题的首页图是等价——妥妥的同一回事。该有的点都有,点和点之间该有的边都有,不该有的边都没有。这次的扩张,和前面的操作完全一样:
先取上一张图的原份,做一份拷贝;再将拷贝和原份的对应点连接起来,得到下一张图。
新图对应的空间,再次多了一个比特;同时能表示的状态翻了一倍。

上面各个过程,进行的操作是一样的:对空间的扩基(Extending basis),将n-1维空间升级为n维空间。由数学归纳法,事实上我们可以得到任意维的空间。只是,我取的空间是特殊的。
但也不要认为这样的空间离欧氏空间很远——这种由比特组成的空间 (我忘了它的正式称谓) 的坐标值只能在两个离散值间取;假若各个坐标的取值都能取实数,那它就是欧氏空间

就介样,以后别说「画不出n维空间」这样的话了

什么是超级立方体,HyperCube的更多相关文章

  1. H - Hamiltonian Hypercube Gym - 101170H

    规律题 首先我们要知道他的顺序是怎么来的,首先当n等于1时,是0,1 当n=2时,先按照与按顺序在他们前面分别加0,即00,01,在逆序加1,即11,10 构成的顺序为00,01,11,10:往后同理 ...

  2. 2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)

    A. Arranging Hat $f[i][j]$表示保证前$i$个数字有序,修改了$j$次时第$i$个数字的最小值. 时间复杂度$O(n^3m)$. #include <bits/stdc+ ...

  3. Scikit-Learn模块学习笔记——数据集模块datasets

    scikit-learn 的 datasets 模块包含测试数据相关函数,主要包括三类: datasets.load_*():获取小规模数据集.数据包含在 datasets 里 datasets.fe ...

  4. PRML读书笔记——2 Probability Distributions

    2.1. Binary Variables 1. Bernoulli distribution, p(x = 1|µ) = µ 2.Binomial distribution + 3.beta dis ...

  5. (转)Markov Chain Monte Carlo

    Nice R Code Punning code better since 2013 RSS Blog Archives Guides Modules About Markov Chain Monte ...

  6. UVa 103 - Stacking Boxes(dp求解)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  7. Curse of Dimensionality

    Curse of Dimensionality Curse of Dimensionality refers to non-intuitive properties of data observed ...

  8. 海明距离hamming distance

    仔细阅读ORB的代码,发现有很多细节不是很明白,其中就有用暴力方式测试Keypoints的距离,用的是HammingLUT,上网查了才知道,hamming距离是相差位数.这样就好理解了. 我理解的Ha ...

  9. UVA 103 Stacking Boxes (dp + DAG上的最长路径 + 记忆化搜索)

     Stacking Boxes  Background Some concepts in Mathematics and Computer Science are simple in one or t ...

随机推荐

  1. WebBrowser 禁用右键

    禁用错误脚本提示 将 WebBrowser控件的 ScriptErrorsSuppressed 设为 true 禁用右键菜单 将 WebBrowser 的 IsWebBrowserContextMen ...

  2. C# ManualResetEvent的使用

    using System; using System.Threading; public class Example { // mre is used to block and release thr ...

  3. iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题

    在IOS7中设置applicationIconBadgeNumber不会有什么问题,但是直接在IOS8中设置applicationIconBadgeNumber会报错.因为在IOS8中要想设置appl ...

  4. [置顶] Android应用开发之版本更新你莫愁

    传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 今天我们学习如何实现Android应用的自动更新版本功能,这是在各种语言编写的应用中都 ...

  5. 安装 openSUSE Leap 42.1 之后要做的 8 件事

    导读 openSUSE Leap 确实是个巨大的飞跃,它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版.和其它系统一样,为了实现最佳的使用效果,在使用它之前需要做些优化设置. 下 ...

  6. 将Web应用性能提高十倍的10条建议

    导读 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于 ...

  7. C语言register关键字—最快的关键字 ---------------转自http://blog.sina.com.cn/s/blog_6a1837e90101128k.html

    register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对.你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很 ...

  8. 什么是响应式Web设计?怎样进行?

    http://beforweb.com/node/6/page/0/3 开始第一篇.老规矩,先无聊的谈论天气一类的话题.十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡.话说两年前也 ...

  9. (部署新java程序,程序报错,需copy的一个包)——java使用siger 获取服务器硬件信息

    mcat-siger.sh  查看是否安装siger rsync -aPuv /usr/lib64/libsigar-amd64-linux.so $i:/usr/lib64/ java使用siger ...

  10. Spring源码学习(二)AOP

    ----ProxyFactoryBean这个类,这是AOP使用的入口---- AOP有些特有的概念,如:advisor.advice和pointcut等等,使用或配置起来有点绕,让人感觉有些距离感,其 ...