问题

如果一个人想从最大到最小的数字 1,2,3,4 重新排列,人类将检查第二个数字是否大于第一个数字,但是在检查其余数字之前不会交换位置。

新的顺序变成:4,2,3,1

但是,下面的代码将交换“1”和“2”的位置,一旦它确定“2”大于“1”.

新的顺序变成:2,1,3,4

这个程序将比人类做的更多交换...
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 因此,它可能比人类方法效率低?

有没有办法将人类方法的效率应用于此程序?或者人类方法不是更有效,而只是这样似乎?

 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 , core_cell , Optic_heard

数学:

  • 1亿根棒状细胞;
  • 700万锥形细胞;
  • 每个人的视神经包含770,000至170万神经纤维

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


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

  相同标签的其他问题

c