找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1350|回复: 9

[求助] [求助]:请教高手:关于变量名和变量值的问题!

[复制链接]
发表于 2008-4-1 21:09:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在LISP中,假定一种情况是有100个变量名,每个变量名拥有1个变量值,因而总共有100个变量值;另一种情况是1个变量名,其中有100个值。假定这其中的每个“值”都是相等的,那么哪种情况下占用的内存资源更大?大概会相差多少呢?盼高手赐教为谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-4-2 08:19:29 | 显示全部楼层
"一种情况是1个变量名,其中有100个值。假定这其中的每个“值”都是相等的"
楼主的问题,很有新意,着实看不能理解。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-2 20:30:03 | 显示全部楼层
不好意思,没说清楚。对LISP的理解很肤浅,请各位多指教。我的意思是这样的,

比如第一种情况是:100个变量,从X1,X2,X3。。。一直到X100,共100个变量。假设每个变量的值都是表 '(1 2 3),那么共有100个表 '(1 2 3);

第二种情况是:一个变量X1,它的值是一个表 '( (123) (123) (123)...... (123)),这个表中包含了100个子表 '(1 2 3),也是共有100个表 '(1 2 3),这就是我说的这100个“值”都相等的意思。

在这二种情况下,哪种情况下占用的内存资源更大呢?大概会相差多少?如果用到程序里,运行时的速度会有很大差别吗?如果是1000个或更多的变量和值呢??盼大家指点讨论!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-4-2 21:57:06 | 显示全部楼层
据传,lisp的表在内存中为链表数据,所以从资源上讲,应该是差不多的。
当然,应该让数据来说话,测试一个便知。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10239个

财富等级: 富甲天下

发表于 2008-4-3 00:07:06 | 显示全部楼层
一个变量的变量名是要占空间的。以前有资料介绍变量名长度不要超过6个字母,不然CAD会增加分配内存保存变量名称。据此,可以得到用一个变量名保存100个值,所占用的空间小。但运算速度不一定高。计算机是用空间换时间的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 22:22:46 | 显示全部楼层
zxq0220  说的好像有道理

仔细想了一下,以前好像在书上看到过,LISP的变量名和变量值都要占用内存空间,似乎是说变量名占用堆空间(heal),变量值占用栈空间(stack),记不清楚了,不知是不是这样。如果是这样的话,那么100个变量名和100个变量值就占用了200个内存单元,而1个变量名和100个“变量值”则只占用了101个内存单元,所以后者要更节约?至于空间换时间,或反过来时间换空间的问题我就不清楚了,不知哪位能否再深入一步赐教一下,多谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10239个

财富等级: 富甲天下

发表于 2008-4-4 10:15:49 | 显示全部楼层
WINDOWS的磁盘压缩就是时间换空间。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-2-12 22:23:36 | 显示全部楼层

http://bbs.xdcad.net/forum.php?m ... =%B1%E4%C1%BF%C3%FB

(defun GetCell (Cell$ / Column# ColumnRow@ Return Row#)
  (setq ColumnRow@ (ColumnRow Cell$))
  (setq Column# (1- (nth 0 ColumnRow@)))
  (setq Row# (1- (nth 1 ColumnRow@)))
  (setq Return "")
  (if *ExcelData@
    (if (and (>= (length *ExcelData@) Row#)(>= (length (nth 0 *ExcelData@)) Column#))
      (setq Return (nth Column# (nth Row# *ExcelData@)))
    );if
  );if
  Return
);defun GetCell

这些感觉是外国朋友写的吧
变量名可不止6个字母啊?
感觉再大的字母与没什么区别吧?

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10239个

财富等级: 富甲天下

发表于 2017-2-13 07:40:31 | 显示全部楼层

现在的计算机内存都大,可以不考虑这个问题了。
30年前是必须要考虑的。那时最长的LISP程序不能超过11kb,不然无法装入内存。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-2-13 21:21:30 | 显示全部楼层

谢谢老师的指点
谢谢你
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-22 09:30 , Processed in 0.188156 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表