数学问题,遍历所有排列

问题描述

N个互不相同的数,放在一个数组里每次交换两个,在遍历玩所有排列前不出现重复。how

解决方案

解决方案二:
遍历数组中元素的所有组合--全排列publicclassAllSort{int[]result;publicAllSort(int[]i){result=newint[i.length];}publicstaticvoidmain(String[]args){int[]i={1,2,3,4,5};AllSorttest=newAllSort(i);test.method(i,0,i.length);}publicvoidmethod(int[]i,intbegin,intlength){if(begin==i.length){System.out.println(Arrays.toString(result));}else{for(intk=begin;k<i.length;k++){result[begin]=i[k];//把后面的数和第一个数交换,如此每一次都是在进行n-1的全排列;swap(i,begin,k);method(i,begin+1,length);swap(i,k,begin);}}}publicvoidswap(int[]in,inti,intj){inttemp=in[i];in[i]=in[j];in[j]=temp;}}

解决方案三:
递归的不行,有循环的么?
解决方案四:
该回复于2011-03-18 14:34:06被版主删除

时间: 2024-07-28 22:05:35

数学问题,遍历所有排列的相关文章

遍历排列的实现——VB2005

前两日,写了一篇"遍历组合的实现--VB2005".在数学分支里,排列与组合是不分家的.于是,动手写下本文.在上一文中,采用了递归调用,虽然便于理解,但是算法的效率上打个折扣.本文一并重写,改为循环调用. 代码赋予其后,用的是VB2005 两个类,一个是clsPermutation,用来计算排列的:一个是clsCombination,用来计算组合的.下面,把各个函数说明一下. 类clsPermutation: 函数:GetPermutation 获得指定标号的排列,返回值是一个数组 参

中学辅助排课,失败了,哪位大侠可以提供一个算法

问题描述 功能:中学辅助排课,假设9门课,每天安排上8节课,一周上5天:对每个班:语数外每周5节(每天1节),剩下学科每周3节:对每个老师:一天不超过3节课.[只要这些功能,其他不用]说明:数字都可以设置,可以设置成现在数字附近的值,算法效率考虑我自己用了9个栈,一个数组,回溯法,可以排出一天的课,但无法控制一周内语数外5节,其他3节,循环出5天的情况,再调整,发现那已经是穷举了,很难碰到一个满意的结果,于是放弃哪位高手能给个算法,C系列语言实现的,图结构也能看懂,谢谢了. 解决方案 本帖最后由

tensorflow实现基于深度学习的图像补全

目录■ 简介 ■ 第一步:将图像理解为一个概率分布的样本      你是怎样补全缺失信息的呢?      但是怎样着手统计呢?这些都是图像啊.      那么我们怎样补全图像?  ■ 第二步:快速生成假图像      在未知概率分布情况下,学习生成新样本      [ML-Heavy] 生成对抗网络(Generative Adversarial Net, GAN) 的架构      使用G(z)生成伪图像      [ML-Heavy] 训练DCGAN      现有的GAN和DCGAN实现  

关于一个大数据量的查找算法

问题描述 关于一个大数据量的查找算法 如果有一到一亿个数乱序排列,可以操作最后一个位置前面的所有数,问怎么才能最快知道最后一个位置的数是多少? 解决方案 就是遍历读取排列中的数据,以数据作为数组的下标,同时给这个数组元素赋值为1.这样把排列中倒数第二个以前所有数据过一遍. 最后把数组再遍历一次,看那个元素值为0,它的下标就是排列最后一个. 解决方案二: 开一个100000000元素的数组arr,遍历数字,如果一个数字是123,那么就让arr[123]加1,以此类推. 相当于基数排序. 解决方案三

组合排列遍历算法浅析(一)

最近一段时间,稍微空闲了些,于是准备把去年面试某公司时遇到的题写出来. 回味那次面试,真是有点尴尬,大学毕业后,一直忙于这样技术.那样技术,此控件.彼控件的,对于基础的东西忘得差不多了. 于是乎,在面试官一道问题下,顿显尴尬.不过这个面试官的面试方法我觉得挺变态的-- 通过了第一轮电面,第二轮笔试,开始了第三轮面试的时候,面试官开始问一些工作经历上的事情.问得差不多的时候,突然来一句, 这里有一道比较简单的算法题,你来解一下喃: 有n个数,打印出取其中m个数的所有组合. 我当时脑中只记得了C(n

php 遍历数据表数据并列表横向排列的代码_php技巧

复制代码 代码如下: <?php $a = array (1,2,3,4,5,6,7,8,9,10,11); $i = 0; ?> <table border=1> <tr> <? foreach ($a as $k){ if($i%3==0) {//该处表示需要横向排列的列数. echo "</tr><tr>"; } echo "<td>",$k,"</td>&qu

排列组合的数学符号怎么在Word2010中输入

  ①首先启动Word2010,输入一个大写字母A,如下图所示. ②然后,点击菜单栏--开始--双行合一.下图红色方框标记的很清楚. ③在文字中输入2 5,注意要空格,下方预览里面可以查看效果. ④按下确定键之后,就完成了数学公式的输入.

c# 排列 组合-C# 排列 组合问题,a,b两个字符要生成 n个字符长度的所有排列

问题描述 C# 排列 组合问题,a,b两个字符要生成 n个字符长度的所有排列 请教 两个字符 a,b 生成 n个字符长度的 排列 怎么实现 ,要得到所有的排列 比如 n=5 ,n可以自己定义 比如 "ababa" , aabba, bbaab,........ 用代码怎么实现,得到n长度下的所有排列 解决方案 using System; using System.Collections.Generic; using System.Linq; public class Test { st

js实现简单排列组合的方法_javascript技巧

本文实例讲述了js实现简单排列组合的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title>demo</title> <script type="text/javascript"> var str = [1,2,3,4,5]; var count = 0; function arrange(s){ for(var i=0,