如果一个人想把数字从大到小重新排列1,2,3,4
,人类会检查第二个数字是否比第一个数字大,但在检查完其余数字之前不会交换位置。
新顺序变为:4,2,3,1
然而下面的代码一旦确定"2
"大于"1
",就会交换"1
"和"2
"的位置。
新顺序变为:2,1,3,4
该程序将比人类做更多的交换。
因此,也许它的效率不如人类的方法?
有没有办法将人类方法的效率应用于这个程序?或者也许人类的方法不是更有效率,而只是以这种方式出现?
int a[] = {1,2,3,4};
int total;
total = 4;
int i;
int i2;
int holder = 0;
for (i=0; i<total;) {
for (i2=i+1; i2<total;) {
if(a[i] < a[i2]) {
holder = a[i];
a[i] = a[i2];
a[i2] = holder;
}
i2=i2+1;
}
i=i+1;
}
请注意,以下观点是我自己的观点,无论可能存在任何关于该主题的文献。它们不应该被视为科学,无论"科学"如何定义。
简短的回答:
-
我们不知道人类大脑实际上是如何工作的——这里指的是数学计算、比较等。
-
可以保证人脑的工作方式与任何计算机都截然不同。
也许我的"比喻"不准确,但我得出了这个结论:人脑"视觉"地进行许多(大多数?(计算:你只要看一下,你就知道正确的答案。计算机需要非常复杂的算法,并且可能仍然无法解决问题。
此外,人脑能够生成一个完全不同的问题,具有与原始相同的结果/答案,但更容易计算。而且,大多数时候,我们甚至都没有意识到这一点。
评论中已经提到过:以您的问题为例,人类不会对该数字列表进行排序。他只会从 4 倒计时到 1。
如果问题提供不同的数字,例如{5,21,48,16},大脑核心将"视觉"检测列表中的最大值和最小值,并以正确的顺序重新排列它们,而无需真正的比较(至少,我们不知道它们(。
人类的大脑绝对是多核的。但是内核并不像计算机那样独立,它只交换一些数据。它们是永久可重新配置的,我怀疑大脑的这些"核心"实际上是重叠的,不仅在数据方面,而且在执行方面。
要了解在"生物计算机"中完成的计算类型:
参考文献:Rod_cell、Cone_cell Optic_nerve
数学:
- 1亿个视杆细胞;
- 700万个视锥细胞;
- 每条人体视神经包含770,000 至 170 万根神经纤维
现在你看,最多170万个视神经将1.07亿个传感器连接到大脑。这实际上是图像/视频压缩的"定义"。眼睛(视网膜?(本身就是一台独立的计算机。如果它能够进行视频压缩,那么它必须能够(我认为(对简短列表进行排序,而无需将数据中继到大脑。这可能是一个解释,为什么我们只看一眼就知道问题的答案——我们和问题一起收到答案——所有的工作都在其他地方完成。
生物计算机在某种程度上进行数学比较似乎是"显而易见的",只是我们不知道它们是在哪里以及如何制造的。也许在低级"驱动程序"中?也许它们被卸载到其他处理单元?"硬件加速器"?也许,希望未来会告诉我们。