明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1200|回复: 6

[经验] 任意数据穷举组合速度很快

[复制链接]
发表于 2024-5-5 07:20:49 | 显示全部楼层 |阅读模式
  1. (DEFUN $qiong-ju$ (lst / a b lst2 lst-new)
  2.           ;调用示例($qiong-ju$ '("A" "B" "C" "D" "E" "F"))
  3.   (setq lst (vl-remove nil lst))
  4.   (WHILE (SETQ A (CAR LST))
  5.     (SETQ LST2 (CDR LST))
  6.     (WHILE (SETQ B (CAR LST2))
  7.       (SETQ LST-NEW (CONS (CONS A B) LST-NEW))
  8.       (SETQ LST2 (CDR LST2))
  9.     )
  10.     (SETQ LST (CDR LST))
  11.   )
  12.   (SETQ LST-NEW (REVERSE LST-NEW))
  13. )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-5-5 10:21:03 | 显示全部楼层
  1. (defun $qiong-ju$ (lst / a lst2 rLst)
  2.   (setq rLst nil)
  3.   (while (setq lst2 (cdr lst))
  4.     (setq a (car Lst))
  5.     (foreach b lst2
  6.       (setq rLst (cons (cons a b) rLst))
  7.     )
  8.     (setq lst (cdr lst))
  9.   )
  10.   (reverse rLst)
  11. )
发表于 2024-5-5 10:50:01 | 显示全部楼层

foreach是精简一点,不过while是比foreach快一点。
发表于 2024-5-5 10:51:56 | 显示全部楼层
一句代码的事。
发表于 2024-5-5 14:51:28 | 显示全部楼层
本帖最后由 wuyunpeng888 于 2024-5-5 14:53 编辑

什么叫任意数据穷举组合?随机组合吗?穷举速度最慢没有随机抽取快,用字典或集合做随机抽取,n个数抽取n次
发表于 2024-5-5 15:04:32 | 显示全部楼层
gzcsun 发表于 2024-5-5 10:50
foreach是精简一点,不过while是比foreach快一点。

不都是循环吗?次数也一样,速度还有差别?
发表于 2024-5-6 09:37:55 | 显示全部楼层
有没有具体的应用场景呢,举个例子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 18:16 , Processed in 0.194429 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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