多个集合元素排列组合算法
功能需求
模拟考试选择题 答题结果集合
选择题每个选项分数不固定 选项个数不固定
输入选择题 所有选项 求答题有可能得到的所有分数
把选择题抽象成程序
//定义选择题
var arr = [[1,2],[2,3],[4,5],[6,7,8]
];
结题过程
let arr = [[1,2],[2,3],[4,5],[6,7,8]];console.log("输入:");console.log(arr);//[[ 1,2],[2,3],[4, 5],[6,7, 8]]list = arr.reduce(function(prev,cur,index,array){let arr1 = [];prev.forEach(item=>{let arr2 = [];if(!Array.isArray(item)){arr2.push(item);}else{arr2 = item;}cur.forEach(val=>{arr2.push(val);let arr3 = [];arr3 = [...arr2];arr1.push(arr3);arr2.splice(arr2.length - 1, 1);});});return arr1;});console.log("输出组合结果:");console.log(list);//[[1,2,4,6],[1,2,4,7],[1,2,4,8],[1,2,5,6],[1,2,5,7],[1,2,5,8],[1,3,4,6],[1,3,4,7],[1,3,4,8],[1,3,5,6],[1,3,5,7],[1,3,5,8],[2,2,4,6],[2,2,4,7],[2,2,4,8],[2,2,5,6],[2,2,5,7],[2,2,5,8],[2,3,4,6],[2,3,4,7],[2,3,4,8],[2,3,5,6],[2,3,5,7],[2,3,5,8]]//求和var logArr = [];list.forEach(item=>{logArr.push(sum(item));})//数组去重var logArr =logArr.filter(function(value,index,self){return self.indexOf(value) ===index;});console.log("输出目标结果:");console.log(logArr.sort((a, b) => a - b));//[13,14,15,16,17,18]// helper function []求和function sum(arr) {return arr.reduce(function(prev, curr, idx, arr){return prev + curr;});}
可用于测试类题目 计算得分范围 求集合交集 合集
多个集合元素排列组合算法相关推荐
- js实现排列组合算法N选M
JavaScript 从一个数组中拿出N个数(可放回),问共有多少种 今天在写一道leetcode的时候遇到了无重复放回的遍历问题,用递归解决如下: function p(arr, N, ans){i ...
- 排列组合算法之二: 01转换法_java改变后的c++改进版
http://blog.csdn.net/canguanxihu/article/details/46363375 排列组合算法之一: 01转换法_java改变后的c++版 class ZuheAss ...
- 排列 组合 算法(一)
排列组合算法 我们都知道排列与组合的个数可以利用公式很容易的求出来,但是要是把这些排列组合的序列一一输出怎么办呢? 下面结合<组合数学>(第四版)卢开澄卢华明编著,好好总结排列与组合的算法 ...
- java 获取排列组合_Java获得一个数组的指定长度排列组合算法示例
本文实例讲述了Java获得一个数组的指定长度排列组合算法.分享给大家供大家参考,具体如下: package demo; import java.util.Stack; /** * JAVA获得一个数组 ...
- C#语法灵活运用之排列组合算法
今天群里有朋友求一个排列组合算法,题目是给定长度,输出所有指定字母的组合. 如指定字母a.b.c.d.e.f,长度为2,则结果应为:aa.ab.ac ... ef.ff. 有朋友给出算法,很有特色: ...
- python 排列组合速度_Python实现的简单排列组合算法示例
本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...
- python写排列组合_Python实现的简单排列组合算法示例
本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...
- js排列组合算法解决方案
之前文章中谈过排列组合算法,主要事递归,代码如下 const arrangeCombination = arr => {const res = [], len = arr.length, inn ...
- python 排列组合算法_基于python快速实现排列组合算法
1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍. 2.一个列表数据任意组合 2.1主要是利用自带的库#_*_ coding:utf-8 _*_ #__author__= ...
最新文章
- 十二、进程的同步与互斥
- 学python的游戏app_Python教学软件
- 微服务架构与Docker容器之间关系
- JavaScript中的递归
- python画图-python画图的两种方法
- TCP/IP之(四)Delay ack 和 Nagle算法
- (小费马定理降幂)Sum
- PHP常用字符串函数
- (35)Verilog HDL算术运算:取模、指数、对数
- Cesium官方教程6--相机
- php自动安装myqsl,php – 在自制的小牛上安装MySQL麻烦
- 蓝湖 for Mac(自动切图sketch插件)中文版
- 使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换
- android+接入易宝支付,iOS客户端连接易宝支付接口
- 强化学习实战——Q learning 实现倒立摆
- 【74系列芯片的Verilog重现(一)】------74HC00
- MS word自带公式编辑器、MathType、AxMath三种公式编辑器的比较
- file Java 读取_Java读取文件方法汇总
- mac安装指定版本的ruby_Mac OS X 安装Ruby
- vmware虚拟机C盘扩容
热门文章
- latex中表格怎么加标题_latex中如何设置两个标题
- 计算机在医院管理方面的应用,计算机在医院管理的应用
- 生物课高中神经调节视频,初中生物神经系统视频
- 弹性盒子中的flex
- C# 二元一次方程参数求解
- 学以致用——Java源码——抛双骰游戏图形界面版(GUI-Based Craps Game)
- EasyCVR调用云端录像接口报错“Channel[5] Not Enabled“处理
- Python模拟ARCH过程
- 万物互联时代,LED显示屏行业机遇与挑战并存
- 王者服务器维护11月,王者荣耀11月22日更新维护公告 王者荣耀更新内容汇总