计算机中 为何可以时间换空间或空间换时间?

2020-03-27 16:20:51 +08:00
 22yune

如图,突然想到了这个问题。现实世界也有这种列子吗?(我不知道我在问什么)

8576 次点击
所在节点    程序员
85 条回复
SlipStupig
2020-03-27 17:00:56 +08:00
这么时候有 100 个人排队去买炸鸡,但是目前只有一个窗口和一个卖炸鸡的店员,假设炸鸡是一分钟一份,那么 100 个人就需要 100 分钟才能全部领到炸鸡,老板只需要给那个店员 3000 块钱工资。
如果现在改 5 个窗口,那么变成了同时可以出货 5 份炸鸡,就需要 5 个炸鸡佬去工作,100 个人只需要 20 分钟就可以全部领到炸鸡了,这个时候老板需要每个月给员工支付 15k 的工资

---

上面的这个例子就是,典型的时间换空间,长流水线和多流水线(具体可以看 CICS 指令集和 RSIC 指令集)如何得到最优性价比,就是经典的 LP 问题, 如果人流量每个月不确定,成本不确定,这个就变成动态规划问题
STRRL
2020-03-27 17:01:06 +08:00
程序 = 算法 + 数据结构

空间 /时间的交换 正是解决问题使用了不用的算法和数据结构的组合.


再举个例子,有 A B C 三个人, A 知道 B 的家在哪, B 知道 C 的家在哪.

A 每次想去找 C 玩, 他都需要跑到 B 的家里询问 B.
或者 A 自己记住 C 的家在哪.

空间换时间....
yellowmarlboro
2020-03-27 17:05:52 +08:00
我认为时间不存在交换一说
lithbitren
2020-03-27 17:06:52 +08:00
提前生产好,放进库存,发货快。
没库存,得去订材料,再生产,再发货。

前者库存成本高,发货快。
后者库存成本低,发货慢。
22yune
2020-03-27 17:20:15 +08:00
@misdake 角度有点特别!选择 ?如#11 #12 的例子也都是选择吗?如果不知道那种方式就没有那个选择。就不能换?
下面回答的例子好像都是回答的怎么换,举例的。我想问为什么能换?不是怎么换。‘为什么能’和‘怎么做’ 好像是一样的。但在这里是不一样的。就像是可以
22yune
2020-03-27 17:25:07 +08:00
@misdake 角度有点特别!选择 ?如#11 #12 的例子也都是选择吗?如果不知道那种方式就没有那个选择。就不能换?

下面回答的例子好像都是回答的怎么换,举例的。

我想问为什么能换?不是怎么换。

‘为什么能’和‘怎么做’ 好像是一样的。但在这里是不一样的。

就好像是可以做和为什么可以做。‘怎么做’对应‘可以做’,‘为什么能’对应‘为什么可以做’。

所以我是想问为什么可以换?不是怎么换可不可以换。
yufpga
2020-03-27 17:27:20 +08:00
计算机中的空间,时间和物理中的空间,时间不是一个概念。计算机中的空间指的是内存(物理存储介质)的空间,时间指的是 cpu 的时间, 是一个非常具体且可以衡量的东西。物理上的空间和时间,我不是搞物理的,解释不了。
helloZwq
2020-03-27 17:27:38 +08:00
一个敢问 一个敢答!
litmxs
2020-03-27 17:38:38 +08:00
把一些运算结果存在内存里面, 下次遇到的时候直接读取而不需要再次运算达到节约时间的效果.
daozhihun
2020-03-27 19:55:07 +08:00
你的书桌其实也是用空间换时间呀。
你的书库有一堆书,把最近常用的书放在书桌上,以免每一本书都要去书库里找,从而节省时间。
时间换空间反之,如果你的书桌坏了要修理,没有这一部分空间,那么你就只能每次花时间去书库找了,读完再放回去。
Kagari
2020-03-27 19:58:03 +08:00
心算
keith1126
2020-03-27 20:14:03 +08:00
基础不牢,地动山摇。 —— 高中某老师
www5070504
2020-03-27 20:18:13 +08:00
有点民科的味道
lengyihan
2020-03-27 20:42:05 +08:00
单纯的概念上的转换以人类目前对宇宙的认知还做不到。目前所说的这个主要是针对具体情况进行的。
Yourshell
2020-03-27 20:43:13 +08:00
你下黄片时大带宽不省时间吗?
xiaobai332
2020-03-27 20:45:05 +08:00
问:磁为何能生电
答:因为电磁感应现象
问:我知道电磁感应,但为什么磁能生电
答:用切割磁感线,导体就会产生感应电流
问:我问的不是怎么样磁生电,是磁为什么能生电???
favourstreet
2020-03-27 21:24:00 +08:00
楼主的这个问题真有意思,我先提供一个物理学上的推论供楼主参考:数据也占用物理上的空间,因为所谓数据就是熵,而熵是一个广延量,熵越大体积也一定越大(如果全息原理是正确的,熵越大表面积越大);至于计算机中的时间,物理上的时间区别不大。

如果楼主能适应相对论的思维习惯:两个门电路可以在空间的两个不同坐标各自接受输入并输出结果,也可以在不同的两个时间坐标各自接受输入并输出结果。而时间坐标和空间坐标是平等的,把门电路摆放在空间的不同位置,以及把门电路摆放在时间的不同位置,在相对论角度下是没有区别的。如果相对论不正确,不存在这样的时空对称性,那么就有两种可能:a.算法和物质的运动可以具有无限大的速度,开始即是结束,根本不需要时间这一维度; b.数据在空间中传播时本身会发生变化,即使有空间也无法利用
zhujinliang
2020-03-27 21:54:12 +08:00
为什么空间能换时间,因为内存便宜了呗😄
空间换时间最常用的办法:查表法,提前把输入值的结果算好,需要时直接按地址读出来就可以了。缺点就是表需要占一定的存储空间,输入输出为 int16 的话可能需要 128KB,int32 的话可能需要 16GB 。
cmdOptionKana
2020-03-27 21:56:16 +08:00
@22yune "我想问为什么能换?不是怎么换。"

楼主这里想错了,这种情况下,怎么换等同于为什么能换。

比如上面有人举衣柜的例子:为什么更大的衣柜可以加快找衣服的时间?

因为衣服不用折叠。

为什么不折叠更快?因为拆叠需要时间,拆叠起来后无法直接看见。

就是这么简单,这里面还有什么疑问吗?
cmdOptionKana
2020-03-27 21:59:39 +08:00
还是说,你误解了这里“换”的意思?

这不是物理上的时间与空间(维度)的转换,只是 “有更大的地方办事可以更快” 的意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX