什么是超级立方体,HyperCube
我试试用我的方式说说如何构造n维空间吧。
n维空间在n大于3后,说要画出来,有点难以想象。
但从数学的角度看,高维空间这个概念还算比较普通、容易理解的。
与其解释,不如快快开始。我选择用图(Graph)的方法来描述想说的东西,而且,我选的是特殊的某类空间,并且不是大多数人通常理解的空间。我选的空间的各个维度上只有一个比特——值只能在0和1之间取。数学符号表示是
下面会看到,这个模型会让人想到信息论里格雷码。但那是另一码事;我事实上忘了这种图论模型的名字,只是知道它而已。这里选择它,只是因为它的空间非常简单,我觉得应会比较容易感受维度的扩张如何进行。
首先希望大家放下对维度的先入之见。此处的维度,仅是@Ent 所说的自由度,并非大家通常理解的坐标轴的延伸方向。
开始吧。
首先是,
零维空间,没有维度——也即连一个可以取0-1值的比特都容不下。
但给它扩张一个维度后,
就有点意思了。原先的一个点获得了一个方向分成了两头。此时图示对应的空间可以容纳一个取0-1值的比特,这个空间即成为一维的空间。
再扩张,
这是空间可以容纳两个比特了,也即可以表示种状态。在该图里,开始可以看到维度是如何扩充的了:图的底下那条边,正是前一张图;将该条单边做一份拷贝,然后将原图和拷贝的两个顶点连接起来,就得到了这张图。
再按上述的方式扩张一次,
此时,该图拥有了个顶点,可表示的状态也增长到这个数目;它所对应的空间扩张成了三维的,能容纳三个在0和1之间取值的比特。这里有个比较有趣的现象:
许多人倾向将这个图看作是立方体,哪怕他只是一个图(Graph)。
再来,应该是四维空间。大家可能都见过很多次的四维空间的标志物:
即这个问题的首页图:超立方体(Hypercube)。
事实上确实会得到超立方体,
(解释一下,首页图片上的这个图形也是两个立方体的八个顶点互相连接,只不过下面这个图是两个大小相同的立方体,而上面那个看起来一大一小)
如果你眼力比较好,可以看出这个图跟本问题的首页图是等价——妥妥的同一回事。该有的点都有,点和点之间该有的边都有,不该有的边都没有。这次的扩张,和前面的操作完全一样:
先取上一张图的原份,做一份拷贝;再将拷贝和原份的对应点连接起来,得到下一张图。
新图对应的空间,再次多了一个比特;同时能表示的状态翻了一倍。
上面各个过程,进行的操作是一样的:对空间的扩基(Extending basis),将n-1维空间升级为n维空间。由数学归纳法,事实上我们可以得到任意维的空间。只是,我取的空间是特殊的。
但也不要认为这样的空间离欧氏空间很远——这种由比特组成的空间 (我忘了它的正式称谓) 的坐标值只能在两个离散值间取;假若各个坐标的取值都能取实数,那它就是欧氏空间
就介样,以后别说「画不出n维空间」这样的话了
什么是超级立方体,HyperCube的更多相关文章
- H - Hamiltonian Hypercube Gym - 101170H
规律题 首先我们要知道他的顺序是怎么来的,首先当n等于1时,是0,1 当n=2时,先按照与按顺序在他们前面分别加0,即00,01,在逆序加1,即11,10 构成的顺序为00,01,11,10:往后同理 ...
- 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+ ...
- Scikit-Learn模块学习笔记——数据集模块datasets
scikit-learn 的 datasets 模块包含测试数据相关函数,主要包括三类: datasets.load_*():获取小规模数据集.数据包含在 datasets 里 datasets.fe ...
- PRML读书笔记——2 Probability Distributions
2.1. Binary Variables 1. Bernoulli distribution, p(x = 1|µ) = µ 2.Binomial distribution + 3.beta dis ...
- (转)Markov Chain Monte Carlo
Nice R Code Punning code better since 2013 RSS Blog Archives Guides Modules About Markov Chain Monte ...
- UVa 103 - Stacking Boxes(dp求解)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- Curse of Dimensionality
Curse of Dimensionality Curse of Dimensionality refers to non-intuitive properties of data observed ...
- 海明距离hamming distance
仔细阅读ORB的代码,发现有很多细节不是很明白,其中就有用暴力方式测试Keypoints的距离,用的是HammingLUT,上网查了才知道,hamming距离是相差位数.这样就好理解了. 我理解的Ha ...
- UVA 103 Stacking Boxes (dp + DAG上的最长路径 + 记忆化搜索)
Stacking Boxes Background Some concepts in Mathematics and Computer Science are simple in one or t ...
随机推荐
- WPF 窗体拖转时不触发MouseLeftButtonUpEvent
解决方案:手动添加Handler,因为e.Handled这个属性是用在路由事件中的,当某个控件得到一个RoutedEvent,就会检测Handled是否为true,为true则忽略该事件. //手动注 ...
- C#编程总结 dynamic(转)
介绍 Visual C# 2010 引入了一个新类型 dynamic. 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查. 大多数情况下,该对象就像具有类型 object 一样 ...
- Vimer的福音 新时代的Vim C++自动补全插件 clang_complete
使用vim的各位肯定尝试过各种各样的自动补全插件,比如说大名鼎鼎的 OmniCppComplete .这一类的插件都是对 Ctags 生成的符号表进行字符串匹配来获得可能的补全项.他们在编写 C 代码 ...
- 漫长Appium之路(一)——从黑苹果到虚拟机
作为一名普普通通的实习生,我也开始习惯折腾一般的生活了.部门应该最近是要搞个iOS自动化测试工具,我从最开始说起吧. 应该是上上上周五.主管找到我,说要装一个黑苹果,要我尽快把黑苹果能支持的硬件配置给 ...
- iOS 工作遇到问题记录
iOS 工作遇到问题记录 1.UITableView的scrollDelegate问题 下午遇到一个奇怪的问题,之前都没有注意过,由于A VC中要实现tableView和其他View位置的联动,所以实 ...
- (7)基本工作流(使用AndroidStudio编辑Cocos项目)
接下来详细介绍一下如何使用Android Studio打开以及编辑cocos2d-x 3.10项目: 一.新建项目: 新建源代码项目,预编译库项目不支持使用Android Stduio打开,见图1 ...
- hibernate中几个接口作用
1.Configuration 类 Configuration 类负责管理 Hibernate 的配置信息,包括数据库的URL.用户名.密码.JDBC驱动类,数据库Dialect,数据库连接池等,其加 ...
- Coursera台大机器学习课程笔记9 -- Logistic Regression
如果只想得到某种概率,而不是简单的分类,那么该如何做呢?在误差衡量问题上,如何选取误差函数这段很有意思. 接下来是如何最小化Ein,由于Ein是可凸优化的,所以采用的是梯度下降法:只要达到谷底,就找到 ...
- 阿里云服务器配置 SVN 服务器与生产站点同步
作为linux的门外汉,一直觊觎svn的方便性,在有台aliyun的情况下,一起来搞搞. 1.环境 阿里云 centos5.5 2.安装svn yum -y install subve ...
- HDOj 1010 DFS优化
#include<cstdio> #include<cstring> ]={,,,-}; ]={,,-,}; ][]; int x1,y1,x2,y2; int step; i ...