找回密码
 注册
Simdroid-非首页
查看: 116|回复: 8

[基础概念] 一行代码优化题:计算一半的表格

[复制链接]
发表于 2009-7-12 21:05:54 | 显示全部楼层 |阅读模式 来自 江苏无锡


  1. (* generate a pseudorandom data *)
  2. SeedRandom[12476]; pts = RandomReal[1, {10, 2}]; n = Length[pts];

  3. pairdistances =
  4. Table[Norm[pts[[j]] - pts[[k]]], {j, n}, {k, n}] (* Can be improved *)

复制代码


以上代码计算了所有20 对距离,生成一个方的表格。

其中对角线为 0 , 相互对称。

如何节省计算资源,我只要计算 一个三角的距离。
发表于 2009-7-13 20:22:19 | 显示全部楼层 来自 美国
Simdroid开发平台
本帖最后由 smarten 于 2009-7-13 06:23 编辑
  1. pairdistances =
  2. Table[Norm[pts[[j]] - pts[[k]]], {j, n}, {k, j}] (*Can be improved*)
复制代码
意义不大吧,本来就很少的几个元素。
或者:
  1. pairdistances = Table[Norm[pts[[j]] - pts[[k]]], {j, n}, {k, j, n}]
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-7-13 20:44:57 | 显示全部楼层 来自 江苏无锡
还是有那么点意义的,现在是 10,但是当 n 变大时 1000 ,计算量就大了。

编程中有一条潜规则叫 “避免对称”。

不过你小子真聪明,不搞国防是浪费材料了。
回复 不支持

使用道具 举报

发表于 2009-7-13 21:47:32 | 显示全部楼层 来自 美国
本帖最后由 smarten 于 2009-7-13 07:51 编辑

你推荐我去做吗?
听了一些郎咸平的演讲:他说的不错,现在的社会已经充分6+1整合好了,保证快速高效;在每一个小的层次,有严格的规则(A->B,...), 让一个系统的各个元素之间无缝整合。大的方面,充分利用信息系统,保证最高层次对下面的各个元素有完全的调控能力,不过又不干涉各个元素自身的操作功能。为了减少实验的次数,充分利用模拟, everything starts from design。 有了这么一些系统,为了保证连续和稳定,最高层有一个设计系统,利用下面各个元素的当前信息以及反馈信息,进行最优设计,让各个元素JIT,减少不必要的剩余和存储。  当然他的言下之意就是这个系统是核心,各个元素的世界水平和优化是第二位的。

我们也就是里面的一个元素,一个螺丝钉,做好自己的本分工作就可以了。

我越来越觉得:every aspects of society is highly specialized.  Rule is the essence of accurate and success. 当然了最好把这些rule自动化,把下面各个元素变成机器人,解放人类自己。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-7-13 22:13:01 | 显示全部楼层 来自 江苏无锡
我是有几个朋友为国家服务,都是不长头发的天才。

但是仅凭 Mathematica 这些雕虫小技,还很难做大官,只能从底层开始。
最好手头上有“你有”“而别人没有的东西”,过去能保个一官半职。

你把郎咸平的思想用 Mathematica 描述一下,我认为也挺有心得。
回复 不支持

使用道具 举报

发表于 2009-7-13 23:51:38 | 显示全部楼层 来自 美国
本来一般人都是从底层开始做的,然后再看能力一步一步升上去的。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-7-17 03:21:31 | 显示全部楼层 来自 江苏无锡
I find another way to do it, meanwhile to keep the same shape of the Matrix.

  1. pairsDistTable = Table[If[j >= k, 0, distFun[j, k]], {j, n}, {k, n}];
复制代码
回复 不支持

使用道具 举报

发表于 2009-7-17 08:08:29 | 显示全部楼层 来自 黑龙江大庆
二位多少岁了,懂的东西感觉那么多呢?
回复 不支持

使用道具 举报

发表于 2009-7-18 12:20:13 | 显示全部楼层 来自 北京
嗯嗯~ 同LS问
二位都帮我解决了很多M@的问题
还没敢问年龄和职业
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-6 14:39 , Processed in 0.042209 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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