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

企业网站制作建站公司wordpress同步豆瓣

企业网站制作建站公司,wordpress同步豆瓣,购物网站排版设计,南安seo教程目录 1,二维数组组合函数举例 2,组合求和 之前的文章《ExcelVBA数组组合函数、组合求和》和《ExcelVBA数组排列函数》,都是针对一维数组的组合和排列 二维数组组合:对一个m行*n列的二维数组,每行抽取1个元素进行组合&a…

目录

    • 1,二维数组组合函数
      • 举例
    • 2,组合求和

之前的文章《Excel·VBA数组组合函数、组合求和》和《Excel·VBA数组排列函数》,都是针对一维数组的组合和排列
二维数组组合:对一个m行*n列的二维数组,每行抽取1个元素进行组合,则共有n ^ m个组合

1,二维数组组合函数

代码思路,类似之前的文章“VBA排列函数”尾数循环的方式

Function combin_arr2d(arr)'arr二维数组,内含m行*n列元素,每行抽取1个进行组合,返回一维嵌套数组,每行为一个组合(数组从1开始计数)Dim i&, j&, m&, n&, kk&, result, k&, x&, r&If LBound(arr) = 0 Or LBound(arr, 2) = 0 Then  '转为从1开始计数arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose(arr))End Ifm = UBound(arr): n = UBound(arr, 2): ReDim b&(1 To m - 1)kk = n ^ m: ReDim result(1 To kk): ReDim res(1 To m): k = 1For i = 1 To m - 1  '非尾数部分初始值b(i) = 1NextDoFor i = k To m - 1  '非尾数部分res(i) = arr(i, b(i))NextFor j = 1 To n  '仅修改尾数res(m) = arr(m, j): r = r + 1: result(r) = resNextx = m - 1: b(x) = b(x) + 1  '尾数循环结束后,m-1位进位Do While b(x) > n  '循环进位,原位重新为1If x > 1 Then b(x) = 1: x = x - 1: b(x) = b(x) + 1 Else Exit DoLoopk = x  '非尾数部分,需要重新赋值的开始位置If b(1) > n Then Exit Do   '所有组合完成Loop Until r = kkcombin_arr2d = result
End Function

举例

组合结果为一维嵌套数组,写入表格需转为二维数组,以下代码调用了TransposeArr函数,代码详见《Excel·VBA数组行列转换函数》(如需使用代码需复制)

Sub combin_arr2d组合输出()Dim arr, brr, crrarr = [a1].CurrentRegionbrr = combin_arr2d(arr)  '调用函数返回组合,一维嵌套数组crr = TransposeArr(brr, 2)  '转为二维数组Cells(1, "e").Resize(UBound(crr), UBound(crr, 2)) = crr
End Sub

对表格中A1:C5区域共5行3列,每行抽取每行抽取1个元素进行组合,共有3 ^ 5 = 243个组合,如图(部分截图)
在这里插入图片描述

2,组合求和

Sub combin_arr2d组合求和()Dim arr, brr, b, h, h2, i&, temp_sum, write_col$, w&
'--------------------参数填写:arr二维数组,h和值下限,h2和值上限,write_col结果写入列号arr = [a1:c14]: h = 36: h2 = 43write_col = "e": w = 1: Cells(w, write_col).Resize(1, 2) = Array("和值", "组合")tm = Timer: brr = combin_arr2d(arr)  '调用函数返回组合,一维嵌套数组For Each b In brrtemp_sum = WorksheetFunction.sum(b)If Abs(Round(temp_sum - h, 6)) < (0.1 ^ 6) Or Abs(Round(temp_sum - h2, 6)) < (0.1 ^ 6) _Or (temp_sum >= h And temp_sum <= h2) Thenw = w + 1: Cells(w, write_col).Resize(1, 2) = Array(temp_sum, Join(b, "+"))End IfNextDebug.Print "组合求和完成,累计用时:" & Format(Timer - tm, "0.00")  '耗时
End Sub

对表格中A1:C14区域共14行3列,进行组合共有3 ^ 14 = 4,782,969个组合,求和值范围为36-43的所有组合,共有525,087个组合符合要求,如图(部分截图)
在这里插入图片描述
测试耗时秒数

组合类型一维数组组合二维数组组合
组合个数5,242,8874,782,969
耗时秒数2.6760.61

组合求和的代码运行速度较《Excel·VBA数组组合函数、组合求和》慢了很多

http://www.15wanjia.com/news/187628.html

相关文章:

  • 模板网站建设制作谷歌官网入口
  • 用代码怎么建设网站平面设计培训班要学多久
  • 网站设计在线培训机构wordpress关闭站点
  • 淘宝客网站推广怎么做做网站属于什么技术
  • wordpress网站打开慢长尾关键词是什么意思
  • 做网站接私活价格怎么算wordpress分词
  • 网站建设 全包 制作中国十大云计算公司排名
  • 爱网站黄给别人做网站的销售叫什么软件
  • 建立什么本地网站赚钱科技幻想画
  • 制冷 网站建设 中企动力wordpress挂下载链接
  • 网站结构及内容建设策略网站标题收录
  • 电影网站建设费用成都网络优化托管公司
  • 做网站的博客提供广东中山网站建设
  • 制作网站软件有赞微商城怎么开店
  • 品牌高端网站制作机构留言板网站怎么做
  • 临淄哪里做网站网站开通银行支付接口
  • 东莞网站制作的公司做窗帘的效果图网站
  • 兰州市城乡建设局网站珠宝公司网站模版
  • 全国最大的网站建设公司排名做引流去那些网站好
  • 汝州市住房和城乡规划建设局网站seo怎么提升关键词的排名
  • 殡葬网站建设腾讯云lamp wordpress
  • 网站运营知识建站套餐
  • 关于加强学校网站建设的通知装修公司网站
  • 怎么做网站平台教程知乎 拒绝 朋友 做网站
  • 网站建设设计规划书用wordpress修改现有网页
  • 对网站做数据统计的目的是什么网站建设计划书300
  • 临沂市建设局官方网站网站建设捌金手指下拉二六
  • 家电维修企业网站源码温州建设局网站
  • 彩票网站的代理怎么做上海做网站的公司多少钱
  • 网站索引下降如何解决中国推广网