Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: yslvictor

[已解决]请教老师,有没有更快的速度运行下列程序的代码

[复制链接]
发表于 2014-11-22 15:53 | 显示全部楼层
香川群子 发表于 2014-11-22 15:19
再介绍一种有趣的算法思路:首先生成0-7这8种不同的奇偶类型对应字符,(二进制3位数的不同组合数=2^3-1=8 ...

19#从说明上有点明白,只是if语句那些,我看着就晕,除非结果惊人,否则真不想去算。
当碰上不大的正整数时,数组正好能发挥它最锐利的一面。。。。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2014-11-22 16:01 | 显示全部楼层
如果不是输出“奇”“偶”,而是输出1和0,以上方法都能提高不少,不知为什么
回复

使用道具 举报

发表于 2014-11-22 16:18 | 显示全部楼层
最后再补充一个递归算法代码……代码很简洁,可以计算任意n位数的奇偶类型……速度也不算慢!
  1. Dim sj$(9), jg(), n&, k&
  2. Sub test5()
  3.     For k = 0 To 9 Step 2: sj(k) = "偶": sj(k + 1) = "奇": Next
  4.     n = 3: ReDim jg(10 ^ n - 1): k = 0: Call dgMN2("", 1)
  5. '    [b1].Resize(10 ^ n) = WorksheetFunction.Transpose(jg)
  6. End Sub
  7. Sub dgMN2(s$, t&)
  8.     Dim i&
  9.     For i = 0 To 9
  10.         If t = n Then jg(k) = s & sj(i): k = k + 1 Else Call dgMN2(s & sj(i), t + 1)
  11.     Next
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2014-11-24 10:55 | 显示全部楼层
香川群子 发表于 2014-11-22 14:45
很规律的数字,应该直接用数组计算和记录,不要用字典……速度会相差数倍!

下面代码算法目前速度最快 ...

受教了。。。。。。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 14:16 , Processed in 0.581451 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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