当前位置: 首页 > news >正文

可以自己做课程的网站四川省建设监理协会官方网站

可以自己做课程的网站,四川省建设监理协会官方网站,wordpress不适合大型网站,深圳网络营销平台1. 需求场景 有多个条件#xff0c;条件个数不定#xff0c;每个条件有若干种情况#xff0c;情况个数不定#xff0c;输出所有条件可能的情况的排列组合。 2.举例 假设第一次有5个情况要填#xff0c;第一个条件20种情况#xff0c;第二个5种#xff0c;第三个40种条件个数不定每个条件有若干种情况情况个数不定输出所有条件可能的情况的排列组合。 2.举例 假设第一次有5个情况要填第一个条件20种情况第二个5种第三个40种第四个10种第五个4种。那么共要输出条件数20x5x40x10x4160000种第二次可能要输出30万钟等等...... 3.实现程序 Sub getalldata(control As Office.IRibbonControl) 生成sht_name Sheets(参数).Cells(2, 2)datamp4 Sheets(sht_name).Range(A1:Z20000)Dim datamp5(50, 2000) As String datamp5存储批量条件数据Dim datamp6(1000000, 20) As VariantDim ribbon As IRibbonUItn 0For i 1 To 20000If datamp4(i, 1) And datamp4(i, 2) ThenCall ProcessBarUpdater(20000, 20000, 正在处理)Exit ForEnd IfIf datamp4(i, 1) And datamp4(i, 2) Thentn tn 1End IfNexttnn 0jd TrueFor i 1 To 20000If datamp4(i, 1) And datamp4(i, 2) ThenExit ForEnd IfIf datamp4(i, 1) And datamp4(i, 2) Thentnn tnn 1------处理条件生成条件二维数组------For j 2 To 25If InStr(datamp4(i, j), ;) 0 Or InStr(datamp4(i, j), ~) 0 ThenIf InStr(datamp4(i, j), ;) 0 ThenIf InStr(datamp4(i, j), ~) 0 Then情况1含波浪号和波浪号n 0For ni 0 To UBound(Split(datamp4(i, j), ;))If InStr(Split(datamp4(i, j), ;)(ni), ~) 0 ThenFor nn Split(Split(datamp4(i, j), ;)(ni), ~)(0) To Split(Split(Split(datamp4(i, j), ;)(ni), ~)(1), ()(0) Step Replace(Split(Split(Split(datamp4(i, j), ;)(ni), ~)(1), ()(1), ), )datamp5(j - 2, n) nnn n 1Nextdatamp5(j - 2, n) Split(Split(Split(datamp4(i, j), ;)(ni), ~)(1), ()(0)n n 1Elsedatamp5(j - 2, n) Split(datamp4(i, j), ;)(ni)n n 1End IfNextElse情况2只含分号For n 0 To UBound(Split(datamp4(i, j), ;)) 从情况2和情况3理解情况1datamp5(j - 2, n) Split(datamp4(i, j), ;)(n)NextEnd IfElse情况3只含波浪号If InStr(datamp4(i, j), ~) 0 Thenn 0For ni Split(datamp4(i, j), ~)(0) To Split(Split(datamp4(i, j), ~)(1), ()(0) Step Replace(Split(Split(datamp4(i, j), ~)(1), ()(1), ), )datamp5(j - 2, n) nin n 1Nextdatamp5(j - 2, n) Split(Split(datamp4(i, j), ~)(1), ()(0)End IfEnd IfElsedatamp5(j - 2, 0) datamp4(i, j)End IfNext------处理条件生成条件二维数组------------计算数据量------tn 1For li 0 To 50 li为条件个数lj为每个条件的选项个数If datamp5(li, 0) ThenFor lj 0 To 2000If datamp5(li, lj) ThenExit ForElseDebug.Print datamp5(li, lj)End IfNexttn tn * ljEnd IfNextDebug.Print tn------计算数据量------------二维数组转为一维排列组合------For li 0 To 50 li为条件个数If datamp5(li, 0) ThenFor lj 0 To 2000If datamp5(li, lj) ThenExit ForEnd IfNextDebug.Print lj lj为每个条件的选项个数If li 0 ThenFor jj 0 To lj - 1If datamp5(0, jj) Thendatamp6(jj, 0) datamp5(0, jj) 赋值给数组ElseExit ForEnd IfNextDebug.Print jj’第一个条件的情况数ElseDebug.Print -----------If li 1 ThenFor ii 0 To 10000 每个条件开始前计算已有的情况个数对应的行数If datamp6(ii, 0) ThenExit ForEnd IfNextElseIf n 0 ThenFor ii 0 To 10000 每个条件开始前计算已有的情况个数对应的行数If datamp6(ii, 0) ThenExit ForEnd IfNextElseii n End IfEnd IfDebug.Print ii iin 0For mi 0 To lj - 1 datamp5第i个条件的选项个数For ni 0 To ii - 1 datamp6数组的行数For nj 0 To li datamp6数组的列数If nj li Then第i之前直接复制datamp6(n, nj) datamp6(ni, nj) If i 7 Then Debug.Print n ; ni ; nj End IfElse第i个取datamp5的值datamp6(n, nj) datamp5(li, mi) If i 7 Then Debug.Print n ; i End IfDebug.Print datamp5(i, mi)End IfIf li 7 ThenDebug.Print n , nj datamp6(n, nj)End IfNextIf lj - 1 0 Or ii - 1 0 Thenn n 1End IfNextNextEnd IfElseExit ForEnd IfDebug.Print n nNextApplication.ScreenUpdating Falseni Sheets(扭矩查询).Range(a Rows.Count).End(xlUp).Row 1For li 0 To 1000000If datamp6(li, 0) ThenFor j 0 To 20Debug.Print i , j datamp6(i, j)Sheets(扭矩查询).Cells(ni li, j 1) datamp6(li, j)NextElseExit ForEnd IfNext------二维数组转为一维排列组合------Sheets(sht_name).Cells(i, 1) TrueFor t 1 To 25If datamp4(1, t) ThenFor ti t 1 To 26If datamp4(i, ti) ThenSheets(sht_name).Cells(i, ti) Format(Now(), YYYY/MM/DD hh:mm)Exit ForEnd IfNextExit ForEnd IfNextErase datamp5Erase datamp6Application.ScreenUpdating TrueEnd IfIf tnn 0 And jd True ThenDebug.Print tnn ; tnCall ProcessBarUpdater(tnn, tn, 正在处理)End IfIf tnn tn Thenjd FalseEnd IfNextFor i 0 To 50 打印For j 0 To 500If datamp5(i, j) ThenDebug.Print i ; j datamp5(i, j)ElseExit ForEnd IfNextNextErase datamp4 End Sub 4. 算法思路讲解 4.1先把条件列转为二维数组可以得出当前有多少个条件每个条件多少种情况。 4.2把条件二维数组的第一行第一种排列组合赋值给“排列组合”二维数组此时二维数组只有一行 4.3从“排列组合”一维数组的第一位开始第一个条件有n种情况就循环n次赋值每次只变一位其他位复制第二个条件同理以此类推。 5. 应用实例 此实例涉及商业保密不便上传文件想要演示实例请私信博主。
http://www.dnsts.com.cn/news/34514.html

相关文章:

  • 私人网站怎么注册十大免费推广平台
  • 网站开发的体会上海做网站的企业
  • 电商网站建设推荐ppt的制作方法
  • 旅游网站设计与实现中山微网站建设多少钱
  • 软件下载网站建设免费wordpress
  • 网站开发 技术路线wordpress在线查看word插件
  • 爱搜索中级网站建设电商线上培训
  • 湖州网站建设培训电脑网站 发展移动端
  • 北京哪里有专门做网站的地方商城网站建设需要
  • 视频网站后台管理系统个人电脑做网站服务器网站
  • 如何利用模板做网站汕头建站程序
  • 行业网站建设多少钱盘县做会计兼职的网站
  • 17一起做网站童装运城学院教务网络管理系统
  • 保定哪个公司做网站好静态网页框架用什么软件做
  • 医美的网站主页怎么做成都网站建设优化公司电话
  • 网站建设数据库怎么传送app应用开发公司
  • 成都网站建设价格一级网站和二级网站的区别
  • 长春三合一网站建设网站引用优酷
  • 临夏州住房和城乡建设局网站赚钱项目
  • 兴国网站建设网站建设域名所有权
  • 校园二手书交易网站开发怎样健网站
  • 网站建设费的税率小程序登录功能
  • 上海市城市建设工程学校网站做网站域名是什么意思
  • 东莞横沥网站设计海南住房与城乡建设部网站
  • 用了mip的网站建立网站需要多少钱
  • 专业做轮胎的网站可以做公众号的一些网站
  • 什么网站做蜘蛛池代理注册公司代理记账
  • 网站设计公司北京推广网站赚钱
  • 网站上推广游戏怎么做的俱乐部网站 模板
  • 濮阳建设工程网站足球直播网站怎么做