功能需求

模拟考试选择题 答题结果集合
选择题每个选项分数不固定 选项个数不固定
输入选择题 所有选项 求答题有可能得到的所有分数

把选择题抽象成程序

//定义选择题
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;});}

可用于测试类题目 计算得分范围 求集合交集 合集

多个集合元素排列组合算法相关推荐

  1. js实现排列组合算法N选M

    JavaScript 从一个数组中拿出N个数(可放回),问共有多少种 今天在写一道leetcode的时候遇到了无重复放回的遍历问题,用递归解决如下: function p(arr, N, ans){i ...

  2. 排列组合算法之二: 01转换法_java改变后的c++改进版

    http://blog.csdn.net/canguanxihu/article/details/46363375 排列组合算法之一: 01转换法_java改变后的c++版 class ZuheAss ...

  3. 排列 组合 算法(一)

    排列组合算法 我们都知道排列与组合的个数可以利用公式很容易的求出来,但是要是把这些排列组合的序列一一输出怎么办呢? 下面结合<组合数学>(第四版)卢开澄卢华明编著,好好总结排列与组合的算法 ...

  4. java 获取排列组合_Java获得一个数组的指定长度排列组合算法示例

    本文实例讲述了Java获得一个数组的指定长度排列组合算法.分享给大家供大家参考,具体如下: package demo; import java.util.Stack; /** * JAVA获得一个数组 ...

  5. C#语法灵活运用之排列组合算法

    今天群里有朋友求一个排列组合算法,题目是给定长度,输出所有指定字母的组合. 如指定字母a.b.c.d.e.f,长度为2,则结果应为:aa.ab.ac ... ef.ff. 有朋友给出算法,很有特色: ...

  6. python 排列组合速度_Python实现的简单排列组合算法示例

    本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...

  7. python写排列组合_Python实现的简单排列组合算法示例

    本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...

  8. js排列组合算法解决方案

    之前文章中谈过排列组合算法,主要事递归,代码如下 const arrangeCombination = arr => {const res = [], len = arr.length, inn ...

  9. python 排列组合算法_基于python快速实现排列组合算法

    1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍. 2.一个列表数据任意组合 2.1主要是利用自带的库#_*_ coding:utf-8 _*_ #__author__= ...

最新文章

  1. 十二、进程的同步与互斥
  2. 学python的游戏app_Python教学软件
  3. 微服务架构与Docker容器之间关系
  4. JavaScript中的递归
  5. python画图-python画图的两种方法
  6. TCP/IP之(四)Delay ack 和 Nagle算法
  7. (小费马定理降幂)Sum
  8. PHP常用字符串函数
  9. (35)Verilog HDL算术运算:取模、指数、对数
  10. Cesium官方教程6--相机
  11. php自动安装myqsl,php – 在自制的小牛上安装MySQL麻烦
  12. 蓝湖 for Mac(自动切图sketch插件)中文版
  13. 使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换
  14. android+接入易宝支付,iOS客户端连接易宝支付接口
  15. 强化学习实战——Q learning 实现倒立摆
  16. 【74系列芯片的Verilog重现(一)】------74HC00
  17. MS word自带公式编辑器、MathType、AxMath三种公式编辑器的比较
  18. file Java 读取_Java读取文件方法汇总
  19. mac安装指定版本的ruby_Mac OS X 安装Ruby
  20. vmware虚拟机C盘扩容

热门文章

  1. latex中表格怎么加标题_latex中如何设置两个标题
  2. 计算机在医院管理方面的应用,计算机在医院管理的应用
  3. 生物课高中神经调节视频,初中生物神经系统视频
  4. 弹性盒子中的flex
  5. C# 二元一次方程参数求解
  6. 学以致用——Java源码——抛双骰游戏图形界面版(GUI-Based Craps Game)
  7. EasyCVR调用云端录像接口报错“Channel[5] Not Enabled“处理
  8. Python模拟ARCH过程
  9. 万物互联时代,LED显示屏行业机遇与挑战并存
  10. 王者服务器维护11月,王者荣耀11月22日更新维护公告 王者荣耀更新内容汇总