我试试用我的方式说说如何构造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. 转:Java NIO系列教程(四) Scatter/Gather

    Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作.分散(sc ...

  2. CMWAP CMWAP是手机上网使用的接入点的名称

    CMWAP 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . CMWAP是手机上网使用的接入点的名称.CMWAP使用HTTP代理协议和WAP网关协议可以访问到Internet.移动用 ...

  3. [整理]Ajax Post请求下的Form Data和Request Payload

    Ajax Post请求下的Form Data和Request Payload 通常情况下,我们通过Post提交表单,以键值对的形式存储在请求体中.此时的reqeuest headers会有Conten ...

  4. web前端socket封装库--giraffe

    摘要: 最近在做前端的socket消息推送,使用了socket.io.js的最新版本.使用过的都知道socket.io.js是基于消息类型来通信的,如果消息类型多了就很难维护.所以本人就对socket ...

  5. PHP数字格式化,每三位逗号分隔数字,可以保留小数

    在报价的时候为了给浏览者更清晰明确的数字,所以需要用到数字格式化,有两种方法,一种自己写函数,另一种当然是系统自带的,其实我更喜欢系统自带的. 先来系统简单的: string number_forma ...

  6. 淘宝(阿里百川)手机客户端开发日记第四篇 自定义ListView详解

    我们知道,如果采用官方的ListView,实现的功能在很多时候,并不能满足自己的业务需求,比如在设计到复杂的列表的时候,这一节,我们就开始动手自己实现自定义的ListView. 在上一节中,我们采用了 ...

  7. git寻根——^和~的区别

    一. 引子 在git操作中,我们可以使用checkout命令检出某个状态下文件,也可以使用reset命令重置到某个状态,这里所说的“某个状态”其实对应的就是一个提交(commit). 我们可以把一个g ...

  8. 删除重复的字符(给一个字符串,删除连续重复的字符,要求时间复杂度为O(1)……)

    // singal.cpp : Defines the entry point for the console application.// #include "stdafx.h" ...

  9. PHP学习之一晚撸下W3chscool

    PHP 多维数组 其实简单的而言,多维数组就是由单个的数组组成的,两个数组嵌套组成一个二维数组,三个顾名思义就是三维数组. 先来一个简单的数组. 数字是key,引号里的是value <?php ...

  10. i686和x86_64的区别

    找回TCL隐藏分区(转载) 用Wubi安装 Ubuntu 出现(Initranfs)问题的解决方案 i686和x86_64的区别 2009-04-11 08:19:31|  分类: 电脑问题 |  标 ...