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

网站建网站建设网易企业邮箱邮件怎么撤回

网站建网站建设,网易企业邮箱邮件怎么撤回,电梯网站建设,在线网站设计数据准备 在讲排列与组合之前,我们先定义数据元素类型Fruit class Fruit{constructor(name,price){this.name namethis.price price} }排列 对N个不同元素进行排序,总共有多少不同的排列方式? Step1: 从N个元素中取1个,共N种…

数据准备

  • 在讲排列与组合之前,我们先定义数据元素类型Fruit
class Fruit{constructor(name,price){this.name = namethis.price = price}
}

排列

  • 对N个不同元素进行排序,总共有多少不同的排列方式?
Step1: 从N个元素中取1个,共N种取法
Step2: 从剩下N-1个元素取1个,共N-1种
......
StepN: 从剩1个元素中取1个,共1种
所以共有 A=N*(N-1)....*1 =N!
  • 例子:某水果店有以下水果,请对所有水果进行全排列,请输出所有排列
let fruits = [new Fruit('apple',5.3),new Fruit('banana',3.2),new Fruit('orange',4.6),new Fruit('watermelon',2.5)
]
  • 排列算法的javascript实现模板(DSF,最优解in-place)
const premutation = (elements)=>{let res = []const swap = (arr,i1,i2)=> [arr[i1],arr[i2]] = [arr[i2],arr[i1]]const dsf = (elements,k = 0)=>{let len = elements.lengthif(k == len-1){ // 如果想从N=4中,取3个的全排 只需要改这个k=3res.push([...elements.slice(0,k+1)])return}for(let i = k; i < len - 1 ; i++){swap(elements, i, k) // 从剩下[k,...,(len-2)]中 取一个 放到当前k位置dsf(elements, k + 1) // dsf继续下一个位置 [k+1,...,(len-2)]swap(elements,i , k) // 为下一个迭代(k+1)做回滚}}dsf(elements)return res
}
let premutations = premutation(fruits)
premutations.forEach((e,i)=>console.log(i,...e.map(x=>x.name)))
  • 测试结果
0 'apple' 'banana' 'orange' 'watermelon'
1 'apple' 'orange' 'banana' 'watermelon'
2 'banana' 'apple' 'orange' 'watermelon'
3 'banana' 'orange' 'apple' 'watermelon'
4 'orange' 'banana' 'apple' 'watermelon'
5 'orange' 'apple' 'banana' 'watermelon'

组合

  • 对N个不同元素进行排序,总共有多少不同的组合方式?
N个元素中,每个元素要么被放到某个组合中,或者不放,2种选择
所以共有 C=2^N算法实现: 同样我们可以用DSF,但是还有更优解法-- 整型编码/bitmap
2^N种情况可以用N个bit来表示,通过实现对数组索引index来编码
  • 同样的例子:请输出所有组合
let fruits = [new Fruit('apple',5.3),new Fruit('banana',3.2),new Fruit('orange',4.6),new Fruit('watermelon',2.5)
]
  • 组合算法的javascript实现模板(bitmap)
const combination = (elements)=>{let res = []let len = elements.lengthlet counts = 1 << lenfor(let bitmap = 0 ; bitmap < counts; bitmap++){let set = []for(let i=0 ; i < len ; i++){if((1<<i)&bitmap){ //对应位为1,怎加入当前集合种set.push(i)}}// set 只是数组索引的组合,需要转成对应elementres.push(set.map(i=>elements[i])) // 完成一个集合的收集}return res
}
let combinations  = combination(fruits)
combinations.forEach((e,i)=>console.log(i,...e.map(x=>x.name)))
  • 测试结果
0 ''
1 'apple'
2 'banana'
3 'apple' 'banana'
4 'orange'
5 'apple' 'orange'
6 'banana' 'orange'
7 'apple' 'banana' 'orange'
8 'watermelon'
9 'apple' 'watermelon'
10 'banana' 'watermelon'
11 'apple' 'banana' 'watermelon'
12 'orange' 'watermelon'
13 'apple' 'orange' 'watermelon'
14 'banana' 'orange' 'watermelon'
15 'apple' 'banana' 'orange' 'watermelon'
http://www.dtcms.com/a/575084.html

相关文章:

  • Nat Commun:中国团队演示光纤阵列中的里德堡阻塞,为高保真度两比特门奠定基础
  • 建站平台企业排名清风夏邑进入公众号
  • 做期货的一般看什么网站建筑涂料网站设计
  • 网站换稳定服务器上海做网站优化的公司
  • 东莞齐诺做网站建设银行不良资产处置网站
  • SAP S/4HANA中不同MRP区域维护
  • 株洲的网站建设wordpress关闭评论窗口
  • 回文日期(牛客春招)
  • 手机网站建设书籍香洲区建设局网站
  • 2023年IEEE TCYB SCI1区TOP,基于改进多目标群体智能算法的灾难应急响应精确无人机三维路径规划方法,深度解析+性能实测
  • 合肥百度网站排名优化wordpress主题静态页面
  • 做营销最好的网站源码搜索关键词的方法
  • 找人做网站多少钱深圳app客户端做网站
  • 推荐购物网站建设建网站有什么要注意的
  • 建站教程的实现方式关于建设网站的需求
  • 如何给AI项目做芯片选型
  • 自己的网站怎么做app吗算命网站该怎样做
  • 企业网站建设定制开发服务wordpress最快仿站
  • LED Android APP
  • 长春 网站 设计好看好用的wordpress主题
  • 影城网站建设比较有名的编程培训机构
  • 解决SpringBoot项目中Lombok编译时报错,找不到符号,常规方法都尝试了无法解决,问题出在pom(已解决)
  • 零售户电商网站订货网址东莞人才网招聘
  • 纯静态网站是有什么程序做的公司设计网页
  • 南阳集团网站建设管家网站
  • 做教育网站多少钱介绍西安网页设计
  • 建设银行网站证书口碑营销网站
  • 好看云在线网站模板seo网上培训课程
  • DHCP中继+静态路由(eNSP)
  • 腾讯云服务器做网站wordpress 分类 php