精华内容
下载资源
问答
  • 北京信都桥景科技有限公司 软件测试工程师 招聘 笔试题 我没有答案,完全是手打出来的。祝大家好运!
  • 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 import java.util.Scanner; /** * 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错...

    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。


    import java.util.Scanner;
    
    /**
     * 	某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。
     *
     */
    public class LetterWrong {
    	static int n;
    	static int[] arrInt;
    	static int time;
    	public static void main(String[] args) {
    		Scanner input=new Scanner(System.in);
    		n=input.nextInt();
    		input.close();
    		time=0;
    		arrInt=new int[n];
    		computer(0);
    		System.out.println(time);
    	}
    	//递归函数
    	public static void computer(int t){
    		if(t==n){
    			time++;
    			printf();
    			return;
    		}
    		for (int i = 0; i < arrInt.length; i++) {
    			arrInt[t]=i;
    			if(t!=i&&isOk(t,i)){
    				computer(t+1);
    			}
    		}
    	}
    	//判断在t之前i是否被使用过
    	public static boolean isOk(int t,int i){
    		for (int j = 0; j < t; j++) {
    			if(arrInt[j]==i){
    				return false;
    			}
    		}
    		return true;
    	}
    	//打印结果
    	public static void printf(){
    		for (int i = 0; i < arrInt.length; i++) {
    			System.out.print(i+":"+arrInt[i]+"  ");
    		}
    		System.out.println();
    	}
    }
    


    展开全文
  • 我这里用两种方法: 1.第一种是高中的全错位排列公式:S=n!(1-1/1!+1/2!-1/3!+...(-1)^n/n!) C++代码如下: #include using namespace std; int main() { int n; cout请输入n:";... for(int

    我这里用两种方法:

    1.第一种是高中的全错位排列公式:S=n!(1-1/1!+1/2!-1/3!+...(-1)^n/n!)

    C++代码如下:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n;
        cout<<"请输入n:";
        cin>>n;
        int t=1, s=1, sum=0;
        for(int i=2; i<=n; i++)s*=i;
        for(int j=2; j<=n; j++){
          t=1;
          for(int i=2; i<=j; i++)t*=i;
          if(j%2==0)sum+=s/t;
          else sum-=s/t;
        }
        cout<<"共有"<<sum<<"种方法"<<endl;
        return 0;
    }
    


    2.第二种是用总的n!减去所有信封装对的情况(哪怕只有一封装对也算)。

    S=n!-C(n,1)f(n-1)-C(n,2)f(n-2)-...C(n,n-2)f(2)-1

    C(n,m)=n!/[(n-m)!m!],符号没打出来,不好意思。

    以下java代码是我自己写的,结果是一样的,就是看起来总是觉得不是很规范。我是用递归写的。

    package digui;
    
    import java.util.Scanner;
    
    public class Envolope {
    
    	public static void main(String[] args) {
    		Scanner reader=new Scanner(System.in);
    		int n=reader.nextInt();
    		System.out.println("装错信封共有情况"+envolopeError(n)+"种");
    	}
    
    	private static int envolopeError(int n) {
    		if(n==1)return 0;
    		if(n==2)return 1;
    		else {
    			int t=jieCheng(n);
    			for(int i=n-1; i>=2;i--)
    				t-=Cn(n,n-i)*envolopeError(i);
    			t-=1;
    			return t;
    		}
    	}
    	
    	private static int jieCheng(int n){
    		if(n==1)return 1;
    		else return n*jieCheng(n-1);
    	}
    	
    	private static int Cn(int n, int i){
    		int t=n;
    		for(int j=n-1;j>n-i;j--)t*=j;
    		return t/jieCheng(i);
    	}
    
    }
    展开全文
  • 读三国志有感之一·时机

    千次阅读 2012-02-15 17:59:11
     阎忠时罢信都令,说嵩曰:“夫难得而易失者时也,时至而不旋踵者机也,故圣人常顺时而动,智者必因机以发。……”  现在国家面临变革,产业面临转型,IT技术也面临换代,不少“时”摆在我们眼前。我们是要抓住...

        《三国志·贾诩传》载《九州春秋》中,有一段对“时机”的对话,原文如下:

            阎忠时罢信都令,说嵩曰:“夫难得而易失者时也,时至而不旋踵者机也,故圣人常顺时而动,智者必因机以发。……”

        现在国家面临变革,产业面临转型,IT技术也面临换代,不少“时”摆在我们眼前。我们是要抓住这些时机?还是多一事不如少一事,明哲保身?从以往的经验看,还是后者的概率更大一些,这才是天朝特色啊。


    展开全文
  • 所有的信都是在对应的信封中,也就是所有的信都放对了信封,这种情况只有一种 部分信放错了信封 全部信都放错了信封 题目要求的就是求最后一种情况,也就是全部新都放错了信封 定义一个数组a[i],a[1] = 1 表示第一...

    算法描述

    某人给6个朋友每个人都写了一封信,同时写了这6个朋友地址的信封,有多少种投放信笺的方法,使得每封信与信封上的收信人都不相符?

    算法思路

    1. 6封信可能出现的结果:
      • 所有的信都是在对应的信封中,也就是所有的信都放对了信封,这种情况只有一种

      • 部分信放错了信封

      • 全部信都放错了信封

    2. 题目要求的就是求最后一种情况,也就是全部新都放错了信封

    3. 定义一个数组a[i]a[1] = 1 表示第一封信放在了第一个信封中

    4. 限制条件
      • a[i]!=i 即限制信放在正确的信封中

      • a[i]!=a[j] 即限制信不能放在同一个信封

    5. 回溯条件

      a[i]=6 即已经遍历到了最后一封信

    算法实现

        System.out.println("输入n:");
        Scanner scaner = new Scanner(System.in);
        int n = scaner.nextInt();
        scaner.close();
        int s = 0;//解的个数统计
        int[] a = new int[n+1];
        a[1]=2;
        int i=1;
        while(true){
            boolean flag = true;
            if(a[i]!=i){
                for(int j=1;j<i;j++){
                    if(a[j]==a[i]){
                        flag = false;
                        break;
                    }
                }
            }else{
                flag = false;
            }
            
            if(flag&&i==n){
                s++;
                for(int j=1;j<=n;j++){
                    System.out.print(a[j]);
                }
                System.out.print("   ");
                //出现十个解换行
                if(s%10==0){
                    System.out.println("");
                }
            }
            
            if(flag&&i<n){
                i++;
                a[i]=1;
                continue;
            }
            
            while(a[i]==n&&i>0){
                i--;//回溯,a[i]到末尾,则回溯
            }
            if(i>0){
                a[i]++;//向后移
            }else{
                break;
            }
        }
        
        System.out.println("\n"+"s="+s);

    结果

    1210268-20181106191501615-129836883.png

    转载于:https://www.cnblogs.com/kexing/p/9917324.html

    展开全文
  • [排列组合]错排问题

    2019-08-15 19:43:40
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 Input 输入n(n <=20) Output 输出情况总数 Sample Input 2 Sample Output 1 这道题...
  • 信封

    2019-02-13 11:14:00
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况? 输入描述 Input Description n 输出描述 Output Description n封信都装错信封的情况的数量 样例输入 Sample ...
  • 洛谷 P1595 信封问题

    2019-09-25 15:51:28
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入输出格式 输入格式: 一个信封数n(n<=20) 输出格式: 一个整数,代表有多少种情况。 输入...
  • 洛谷P1595 信封问题

    2019-10-07 02:59:41
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入输出格式 输入格式: 一个信封数n 输出格式: 一个整数,代表有多少种情况。 输入输出样例 输入...
  • P1595 信封问题

    2020-05-07 16:03:50
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数n(n<=20) 输出格式 一个整数,代表有多少种情况。 输入输出样例 输入 2 输出 1 ...
  • 错排问题(递推)

    2019-08-16 07:36:48
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 Input 输入n(n <=20) Output 输出情况总数 Sample Input 2 Sample Output 1 解题思路 这题就是求 n 个不同元素的...
  • 2020-10-10

    2020-10-10 20:40:27
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数n(n<=20) 输出格式 一个整数,代表有多少种情况。 输入输出样例 输入 2 输出 1 输入 3 输出 2...
  • 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 Input 输入n(n <=20) Output 输出情况总数 Sample Input 2 Sample Output 1 我们一拿到提目就可以知道...
  • SSL_1354【错排问题】

    2020-08-18 19:02:39
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 输入 输入n(n <=20) 输出 输出情况总数 Sample Input 2 Sample Output 1 题意 题意很简单,输出总数,总数的...
  • 组合数学

    2019-02-15 10:53:31
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入输出格式 输入格式:   一个信封数n(n&lt;=20)   输出格式:   一个整数,代表有多少种情况。 ...
  • 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入输出格式 输入格式: 一个信封数n(n<=20) 输出格式: 一个整数,代表有多少种情况。 题解 本题...
  • 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入输出格式 输入格式: 一个信封数n(n<=20) 输出格式: 一个整数,代表有多少种情况。 输入输出...
  • 伯努利错装信封问题

    千次阅读 2018-03-09 18:37:00
    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入输出格式 输入格式: 一个信封数n(n<=20) 输出格式: 一个整数,代表有多少种情况。 输入输出样例 ...
  • 错排公式

    2019-01-18 08:41:46
    Question:某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封,共有多少种不同情况? 分析: 这个问题看起来比较复杂,直接入手不容易找到解决问题的递推规律。 对n封信以及n个信封各自...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 158
精华内容 63
关键字:

信都