6(3)班有学生46人,每人用1,2,3任意写一个没有重复数字号码过滤软件的三位数字,那吗,

用1,2,3,4,5,6这六个数字组成一个没有重复数字的三位数,并且百位上的数字比十位上的数字大,十位上的数字比个位上的数字大,这样的三位数共有多少个?求过程_百度作业帮
拍照搜题,秒出答案
用1,2,3,4,5,6这六个数字组成一个没有重复数字的三位数,并且百位上的数字比十位上的数字大,十位上的数字比个位上的数字大,这样的三位数共有多少个?求过程
用1,2,3,4,5,6这六个数字组成一个没有重复数字的三位数,并且百位上的数字比十位上的数字大,十位上的数字比个位上的数字大,这样的三位数共有多少个?求过程
非常简单 第一步:从这六个数中随机选3个数出来 C(6,3)=20第二步:当你把3个不同的数选出来后 顺序已经固定(百位数字>十位数字>个位数字)也就是说当你从6个数中选出3个不同数,这3个数的位置就固定了∴这样的三位数共有C(6,3)=20个
先从6个数字选出3个 有6*5*4=120种这三个数字排列有3*2*1=6种,其中符合要求的有1种。所以120/6=20种。不好意思,题没看清用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列 -
- ITeye技术网站
博客分类:
题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:2345等,要求:"4"不能在第三位,"3"与"5"不能相连。
static int[] bits = new int[] { 1, 2, 3, 4, 5 };
* @param args
public static void main(String[] args) {
sort("", bits);
private static void sort(String prefix, int[] a) {
if (a.length == 1) {
System.out.println(prefix + a[0]);
for (int i = 0; i & a. i++) {
sort(prefix + a[i], copy(a, i));
private static int[] copy(int[] a,int index){
int[] b = new int[a.length-1];
System.arraycopy(a, 0, b, 0, index);
System.arraycopy(a, index+1, b, index, a.length-index-1);
**********************************************************************
基本思路:
1 把问题归结为图结构的遍历问题。实际上6个数字就是六个结点,把六个结点连接成无向连通图,对于每一个结点求这个图形的遍历路径,所有结点的遍历路径就是最后对这6个数字的排列组合结果集。
2 显然这个结果集还未达到题目的要求。从以下几个方面考虑:
1. 3,5不能相连:实际要求这个连通图的结点3,5之间不能连通, 可在构造图结构时就满足改条件,然后再遍历图。
2. 不能有重复: 考虑到有两个2,明显会存在重复结果,可以把结果集放在TreeSet中过滤重复结果
3. 4不能在第三位: 仍旧在结果集中去除满足此条件的结果。
采用二维数组定义图结构,最后的代码是:
import java.util.I
import java.util.TreeS
public class TestQuestion {
private String[] b = new String[]{"1", "2", "2", "3", "4", "5"};
private int n = b.
private boolean[] visited = new boolean[n];
private int[][] a = new int[n][n];
private String result = "";
private TreeSet set = new TreeSet();
public static void main(String[] args) {
new TestQuestion().start();
private void start() {
// Initial the map a[][]
for (int i = 0; i & i++) {
for (int j = 0; j & j++) {
if (i == j) {
a[i][j] = 0;
a[i][j] = 1;
// 3 and 5 can not be the neighbor.
a[3][5] = 0;
a[5][3] = 0;
// Begin to depth search.
for (int i = 0; i & i++) {
this.depthFirstSearch(i);
// Print result treeset.
Iterator it = set.iterator();
while (it.hasNext()) {
String string = (String) it.next();
// "4" can not be the third position.
if (string.indexOf("4") != 2) {
System.out.println(string);
private void depthFirstSearch(int startIndex) {
visited[startIndex] =
result = result + b[startIndex];
if (result.length() == n) {
// Filt the duplicate value.
set.add(result);
for(int j = 0; j & j++) {
if (a[startIndex][j] == 1 && visited[j] == false) {
depthFirstSearch(j);
// restore the result value and visited value after listing a node.
result = result.substring(0, result.length() -1);
visited[startIndex] =
浏览: 55025 次
来自: 大连
引用我曾使用 Jdeveloper 的执行监测器监测 Hash ...
写这么多,描述了什么重点?有谁愿意看这种杂乱无章的文章?
文章写的清楚、明了,一气呵成,支持
1,2,3,4,5这六个数字。。。。。用1.2.3.4.5.6组成六位数(没有重复数字),_百度知道
用1.2.3.4.5.6组成六位数(没有重复数字),
答案是40,要求任何相邻两个数字奇偶性不同.4.4,这样子算为什么错.2相邻,.5.6组成六位数(没有重复数字)?我算出来只有36.2,这样的六位数的个数为多少,第二种2 (
)6( ) 有3*2*1*2种.6全排列,我是先把2.3,第一种( )2( ) 4(
)6有3*2*2*2*1种用1,且1,然后分两种
我有更好的答案
按默认排序
应该是40种
先考虑奇数再前面的情况
如果1在最第一位 那么2的位置定了为第二位 剩下的4个位置情况是2*2
如果1在第三位或者第五位
那么2有两种选择 要么左边要么右边
所以情况数位2*2*2*2偶数情况和奇数一样 也是20种
所以一共40
你可以QQ和我讨论一下
是40没错,不管12,看3456,分两种情况 1.
先吉后偶,4种拍法
4个数字前后5个空 12挨着,插孔只能查1,3,5
21排列才能查 2,4 空
4*(2+3)=20 同理先欧后即
当12分别在1.2位2.3位3.4位4.5位5.6位时3456的组合各有四种当21分别在1.2位2.3位3.4位4.5位5.6位时3456的组合也各有四种所以答案为2×5×4=40种
其实不用这样排的,即然1、2相邻,那么从1、2扩手啊,先排1在2的前面总共有20种,2在1前面的情况是一样的,因此其2倍数就是答案了
因为没有说1和2必定是在前面的,有可以在后面
其他类似问题
六位数的相关知识
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1.盒子里有同样大小的3个红球,3个黄球和1个白球,要想摸出的球一定是2个是同色的,至少要摸出()个球。2.六(1)班有学生46人,每人用数字1.2.3任意写一个没有重复数字的三位数,那么至少有()人
1.盒子里有同样大小的3个红球,3个黄球和1个白球,要想摸出的球一定是2个是同色的,至少要摸出()个球。2.六(1)班有学生46人,每人用数字1.2.3任意写一个没有重复数字的三位数,那么至少有()人
相关知识等待您来回答
理工学科领域专家从0,1,2,3,4,5这6个数字中任意取没有重复三个数字组成一个三位数,其中有(
)个三位数能够被9整除_百度作业帮
拍照搜题,秒出答案
从0,1,2,3,4,5这6个数字中任意取没有重复三个数字组成一个三位数,其中有(
)个三位数能够被9整除
从0,1,2,3,4,5这6个数字中任意取没有重复三个数字组成一个三位数,其中有(
)个三位数能够被9整除
504、405、450、540、135、315、513、531、234、243、423、432、共12个.

我要回帖

更多关于 随机生成不重复的数字 的文章

 

随机推荐