用户:
爵士OIer查看:2 回复:5 评论:2 创建时间:2020-03-30T11:21:14
1.话题引入
【蒟蒻的讨论】【爵士精品】计算机能存储下人的记忆吗?
最近几年有很多人说“可以把人的记忆存下来以达到长生不老”。(包括编程猫的很多小说)
那么今天我爵士兵来就此分析一下。
2.数学推导
我们知道,记忆是通过神经细胞建立的连接来存储的。
首先,大脑中的两个神经细胞之间可以建立很多条连接。假定可以建立无数条(无数条是不可能的,但是总之有很多条),那么:
0个神经细胞可以储存0种信息;
1个可以储存一种;
2个可以储存2种;
3个呢?有8种了。
很显然这是有规律的。我七拼八凑(划去)地写除了这个函数递推式:
f(x)=f(x-1)+f(x-1)*[C(n-1,1)+C(n-1,2)+……+C(n-1,n-1)]
写出来就是:
f(x)=f(x-1)+f(x-1)*[C(n-1,1)+C(n-1,2)+……+C(n-1,n-1)]
边界条件为:
f(0)=0;
其中C(n,m)表示从n个中选出m个的组合数量,表达式为:
C(n,m)=[n*(n-1)*…*(n-m+1)]/[m*(m-1)*…*2*1]
(格式有点乱,不要介意)
所以说,这个增长速度是非常恐怖的。
3.代码实现
递推写法:
f[0]=0;
for(i=1;i<=n;i++){
f[i]=____________;//函数递推式,这里不写了
}
递归写法:
int f(int x){
if(x=0)return 0;
return __________;//函数递推式,这里不写了
}
应该是递推更快一些,因为相当于是把递归记忆化优化了。
4.话题总结
通过上面的计算,我们了解到,大脑能存储的信息量是非常巨大的!
因此,如果要存储大脑中的记忆,是非常困难的。
当然两个神经细胞之间不可能存在无数条连接,这给大脑能存储的信息量一定的限制。当然即使这样,数量也是非常庞大。目前的计算机是存储不了的。
算然目前还不能,但是计算机的性能每18个月翻一倍(有一定律就是这么说的,NOIP学的,忘了叫什么了)的速度来说,以后还是有可能的。
实际上这是有一定可能的,现在的硬盘同样也没有边界(只要有资源,想做多大就多大)。而机械运转速度就有待加强了,人脑能处理所有的记忆,从所有记忆中对较为完整的部分进行检索,这对电脑来说是个问题,这就意味着这些东西并不是存在ROM,而是RAM,这会增加很大的成本,而多台电脑是可以同时处理这些数据,但分配和汇总的速度远远打到不了人脑。所以即使在电脑中重生,那么在主视角中,我们的时间比现实要慢。。。
点赞0
评论