与人类水平的方法相比,代码正在执行更多的交换



如果一个人想把数字从大到小重新排列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;
}

请注意,以下观点是我自己的观点,无论可能存在任何关于该主题的文献。它们不应该被视为科学,无论"科学"如何定义。


简短的回答:

  1. 我们不知道人类大脑实际上是如何工作的——这里指的是数学计算、比较等。

  2. 可以保证人脑的工作方式与任何计算机都截然不同。


也许我的"比喻"不准确,但我得出了这个结论:人脑"视觉"地进行许多(大多数?(计算:你只要看一下,你就知道正确的答案。计算机需要非常复杂的算法,并且可能仍然无法解决问题。

此外,人脑能够生成一个完全不同的问题,具有与原始相同的结果/答案,但更容易计算。而且,大多数时候,我们甚至都没有意识到这一点。

评论中已经提到过:以您的问题为例,人类不会对该数字列表进行排序。他只会从 4 倒计时到 1。

如果问题提供不同的数字,例如{5,21,48,16},大脑核心将"视觉"检测列表中的最大值和最小值,并以正确的顺序重新排列它们,而无需真正的比较(至少,我们不知道它们(。


人类的大脑绝对是多核的。但是内核并不像计算机那样独立,它只交换一些数据。它们是永久可重新配置的,我怀疑大脑的这些"核心"实际上是重叠的,不仅在数据方面,而且在执行方面。


要了解在"生物计算机"中完成的计算类型:

参考文献:Rod_cell、Cone_cell Optic_nerve

数学:

  • 1亿个视杆细胞;
  • 700万个视锥细胞;
  • 每条人体视神经包含770,000 至 170 万根神经纤维

现在你看,最多170万个视神经将1.07亿个传感器连接到大脑。这实际上是图像/视频压缩的"定义"。眼睛(视网膜?(本身就是一台独立的计算机。如果它能够进行视频压缩,那么它必须能够(我认为(对简短列表进行排序,而无需将数据中继到大脑。这可能是一个解释,为什么我们只看一眼就知道问题的答案——我们和问题一起收到答案——所有的工作都在其他地方完成。


生物计算机在某种程度上进行数学比较似乎是"显而易见的",只是我们不知道它们是在哪里以及如何制造的。也许在低级"驱动程序"中?也许它们被卸载到其他处理单元?"硬件加速器"?也许,希望未来会告诉我们。

最新更新