找回密码
 注册
Simdroid-非首页
楼主: FreddyMusic

兄弟们 请赐招 --- 数据结构演化 ?

[复制链接]
发表于 2009-3-24 12:47:57 | 显示全部楼层 来自 山西太原
我觉得挺不现实的。我开始也没弄清楚你转换数据结构的目的是什么,但是我觉得如果设计和DictionaryLookup功能一样的命令,这种数据结构其实很不方便,还不如你一开始给出的{___, an->bn,___}这样的规则表。
回复

使用道具 举报

 楼主| 发表于 2009-3-24 14:27:08 | 显示全部楼层 来自 江苏无锡
Simdroid开发平台
呵呵,又不敢想了吧。晚上有空我来试试,证明给你看。
你仍然好好考虑你这块,如何提高结构变化转换的速度。

我觉得绝对可能。可行性如下,现在 DictionaryLookup 不想你相信的那么完善,
速度可见,如下代码。 然而StringMatchQ 尽管效率低下,任取决于你的算法。
只要我们的数据结构可操作,算法OK,完全可以把  DictionaryLookup  比下去。


  1. In[8]:= DictionaryLookup[{"English","difference"}];//AbsoluteTiming
  2. Out[8]= {0.0312500,Null}

  3. In[12]:= Do[StringMatchQ["difference","difference"],{10000}]//AbsoluteTiming
  4. Out[12]= {0.0156250,Null}

复制代码
回复

使用道具 举报

发表于 2009-3-24 19:07:36 | 显示全部楼层 来自 山西太原
本帖最后由 marveloustau 于 2009-3-24 21:18 编辑

……好吧,仔细想了想,还是你说的有道理。不过现在你想要的东西至少已经实现了
回复

使用道具 举报

 楼主| 发表于 2009-3-26 15:16:28 | 显示全部楼层 来自 江苏无锡
tau,

Read Documentation Center "Dispatch" and "Compile" to improve your code speed.
回复

使用道具 举报

发表于 2009-3-26 17:47:03 | 显示全部楼层 来自 山西太原
嗯,有道理,Dispatch应用在第一步生成的规则表上之后第二步的运行时间变成了原来的2/3
回复

使用道具 举报

 楼主| 发表于 2009-3-27 08:37:46 | 显示全部楼层 来自 江苏无锡
把你最新的 Dispatch + Replace + Rule 的代码贴出来,我看周末内否用上。
回复

使用道具 举报

发表于 2009-3-27 14:49:45 | 显示全部楼层 来自 山东青岛
直接在第一步newrule后面的一大坨整个用Dispatch[]括起来就可以了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 14:16 , Processed in 0.024775 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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