javascript笛卡尔积算法实现方法
本文实例讲述了javascript笛卡尔积算法实现方法。分享给大家供大家参考。具体分析如下:
这里可根据给的对象或者数组生成笛卡尔积
//笛卡儿积组合 function descartes(list) { //parent上一级索引;count指针计数 var point = {}; var result = []; var pIndex = null; var tempCount = 0; var temp = []; //根据参数列生成指针对象 for(var index in list) { if(typeof list[index] == 'object') { point[index] = {'parent':pIndex,'count':0} pIndex = index; } } //单维度数据结构直接返回 if(pIndex == null) { return list; } //动态生成笛卡尔积 while(true) { for(var index in list) { tempCount = point[index]['count']; temp.push(list[index][tempCount]); } //压入结果数组 result.push(temp); temp = []; //检查指针最大值问题 while(true) { if(point[index]['count']+1 >= list[index].length) { point[index]['count'] = 0; pIndex = point[index]['parent']; if(pIndex == null) { return result; } //赋值parent进行再次检查 index = pIndex; } else { point[index]['count']++; break; } } } }
希望本文所述对大家的javascript程序设计有所帮助。
相关推荐
-
JavaScript 计算笛卡尔积实例详解
JavaScript实现笛卡尔积 注意:本文中所说的集合是指数学上的集合,不是es6里的Set. 整体思路如下: 用户传入一个二维的数组,每个子数组都是一个要进行笛卡尔积计算的集合.返回一个二维数组,每个子数组都是一个有序对或者n元有序组. 当用户传入一个集合的时候,为了兼容业务,返回形如:[[a],[b]-]的二维数组. 当用户只传入两个集合计算的时候,普通的嵌套计算即可. 当用户传入3个或者3个以上的集合的时候,先计算最后两个集合的结果,再依次把前面的集合与其进行计算. 实现代码如下: de
-
php计算多个集合的笛卡尔积实例详解
笛卡尔积 笛卡尔积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X*Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员. 假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)} 实现思路 先计算第一个集合和第二个集合的笛卡尔积,把结果保存为一个新集合. 然后再用新集合与下一个集合计算笛卡尔积,依此循环直到与最后一个集合计算笛卡尔积. 例如有
-
javascript笛卡尔积算法实现方法
本文实例讲述了javascript笛卡尔积算法实现方法.分享给大家供大家参考.具体分析如下: 这里可根据给的对象或者数组生成笛卡尔积 //笛卡儿积组合 function descartes(list) { //parent上一级索引;count指针计数 var point = {}; var result = []; var pIndex = null; var tempCount = 0; var temp = []; //根据参数列生成指针对象 for(var index in list)
-
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
本文实例讲述了JS笛卡尔积算法与多重数组笛卡尔积实现方法.分享给大家供大家参考,具体如下: js 笛卡尔积算法的实现代码,据对象或者数组生成笛卡尔积,并介绍了一个javascript多重数组笛卡尔积的例子,以及java实现笛卡尔积的算法与实例代码. 一.javascript笛卡尔积算法代码 例子,根据对象或者数组生成笛卡尔积. //笛卡儿积组合 function descartes(list) { //parent上一级索引;count指针计数 var point = {}; var resul
-
JavaScript排序算法动画演示效果的实现方法
之前在知乎看到有人在问 自己写了一个冒泡排序算法如何用HTML,CSS,JavaScript展现出来排序过程. 感觉这个问题还挺有意思 .前些时间就来写了一个.这里记录一下实现过程. 基本的思想是把排序每一步的时候每个数据的值用DOM结构表达出来. 问题一:如何将JavaScript排序的一步步进程展现出来? 我试过的几种思路: 1.让JavaScript暂停下来,慢下来. JavaScript排序是很快的,要我们肉眼能看到它的实现过程,我首先想到的是让排序慢下来. 排序的每一个循环都让它停
-
Java笛卡尔积算法原理与实现方法详解
本文实例讲述了Java笛卡尔积算法原理与实现方法.分享给大家供大家参考,具体如下: 笛卡尔积算法的Java实现: (1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列. (2)如果该列到尾部了,则这列index重置为0,而CounterIndex则指向前一列,相当于进位,把前列的index加一. (3)最后,由生成的行数来控制退出循环. public class Test { private static String[] aa = { "aa1", &q
-
JavaScript笛卡尔积超简单实现算法示例
本文实例讲述了JavaScript笛卡尔积超简单实现算法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &
-
JavaScript插入排序算法原理与实现方法示例
本文实例讲述了JavaScript插入排序算法原理与实现方法.分享给大家供大家参考,具体如下: 一.插入排序简介: 想象我们斗地主,摸排阶段,手里的牌都按照从小到大排序.如果每摸一张牌,我们就把他插入合适的位置,使得它比后面位置的牌小,比前面位置的牌大或者相等. 类似这样的一种排序方法就是插入排序: 在一个数组a中,我们要实现升序排序,假设我们前面已经对a[0]到a[k]排好序,现在需要将a[k+1]的值放入合适的位置. (为简便,此处不讨论k的取值范围,只是用它代表数组的某个位置) 1.首先,
-
JavaScript冒泡算法原理与实现方法深入理解
本文实例讲述了JavaScript冒泡算法.分享给大家供大家参考,具体如下: 在面试中经常会遇到面试官问到冒泡算法.今天总结一下. ###概念 有一组数,依次比较两个相邻的数,如果他们的顺序(如从大到小或从小到大等)错误就把他们交换过来. 我们先假设这一组数是有顺序的,那么我们找出它的规则. 我们按照从小到大的顺序依次交换长方形,得到以下的结果. 第一轮交换结果:CBAD 交换次数:3次 第二轮交换结果:BACD 交换次数:3次 第三轮交换结果:ABCD 交换次数:3次
-
JavaScript使用链式方法封装jQuery中CSS()方法示例
本文实例讲述了JavaScript使用链式方法封装jQuery中CSS()方法.分享给大家供大家参考,具体如下: 主要思路就是:返回this对象,将所获取的操作元素放入一个数组中.在原型中添加拓展方法 <html> <head> <title></title> </head> <body> <div id="one">aa</div> </body> <script typ
-
JavaScript实现信用卡校验方法
本文实例讲述了JavaScript实现信用卡校验方法.分享给大家供大家参考.具体分析如下: 这里JavaScript版的信用卡校验代码,采用了Luhn算法 function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix 4, dashes optional. var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/; } else if (typ
-
javascript动画算法实例分析
本文实例讲述了javascript动画算法.分享给大家供大家参考.具体如下: 动画算法 Linear:无缓动效果(匀速运动): Quadratic:二次方的缓动: Cubic:三次方的缓动 Quartic:四次方的缓动: Quintic:五次方的缓动: Sinusoidal:正弦曲线的缓动: Exponential:指数曲线的缓动: Circular:圆形曲线的缓动: Elastic:指数衰减的正弦曲线缓动: Back:超过范围的三次方缓动): Bounce:指数衰减的反弹缓动. 每个效果都分三
随机推荐
- thinkphp框架实现删除和批量删除
- javascript正则表达式和字符串RegExp and String(二)
- Vrtualbox虚拟机中共享文件夹配置教程
- VirtualBox 共享文件夹设置及开机自动挂载详细教程
- java 简单的计算器程序实例代码
- asp.net gridview中用checkbox全选的几种实现的区别
- php对mongodb的扩展(初识如故)
- Visual Studio for Mac版 初体验
- MySQL 数据类型 大全
- table 行转列的sql详解
- XML指南——XML 确认
- 微信JSAPI支付操作需要注意的细节
- Java判断中英文符号、标点的实现
- ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法
- canvas绘制表盘时钟
- javascript asp教程第二课--转义字符
- Linux不完全手册(一)
- JAVA读取PDF、WORD文档实例代码
- 通过vue-cli来学习修改Webpack多环境配置和发布问题
- 详解为生产环境编译Angular2应用的方法