计算机里面的“降维打击”

  今天在论坛里看到一位朋友的提问:“怎么获取大量不重复的三维坐标”,想到了这个标题。
  大家都知道,电脑的24位真彩是由红绿蓝三种颜色的值组成的,每一种颜色的取值范围都是0-255这样就能表现出来相当多的颜色了。你可以把颜色列表当做一个三维空间的所有坐标。
  那么怎么降维呢?想必一些人看到颜色表的时候已经明白了。明白的人可以不用看了。如果不明白就接着看。
  怎么列出所有的颜色呢?当然三重循环遍历了,rgb三种颜色,每种颜色一重循环,从0-255,就可以完成所有颜色遍历了,这样遍历后的颜色值,可以存放在一个一维的颜色结构体数组里面,这个数组的元素个数,有224个,这样我们就把三维坐标降维到了一维。随机抽取一个0-224的数,就可以得到一个三维坐标。

// 只是伪代码
typedef struct
{
	unsigned char r;
	unsigned char g;
	unsigned char b;
} color;

color allColors[16777215];
int r,g,b;
int i = 0;
for(r = 0; r <= 255; r++)
{
	for(g = 0; g <= 255; g++)
	{
		for (b = 0; b <= 255; b++)
		{
			allColors[i].r = r;
			allColors[i].g = g;
			allColors[i].b = b;
		}
	}
}

  但是等等,我还要三重循环干嘛?直接随机获取一个0-224的数,低位的三个字节分开一下不就一下得到了,一个三维坐标了吗?没错三维降维到一维不算什么,我们可以直接降到0维。但是为了达到题目的要求“不重复”,我们还是需要一个一维空间存放已经用过的坐标,所以为了保证信息还有意义,就至少还要保留一维空间。

  如果要降维到了0维,那就是黑洞了,黑洞无毛,只能有一些基本信息保留(这里就是取值上限,下限,升维规律),其他的信息都会化为虚无,当然你也可以说这个零维黑洞吞噬了整个空间,整个空间都是由一个奇点爆炸而来。

  说了那么多玄之又玄的东西,可以看出来,我们可以在降维的时候保留高维信息的,只要不降到0维,我们都可以用低维表示出来高维。所以我为我们人类把科技提升到三体人的水平打下了基础:p,快来感谢我吧:p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值