Java 概率连接字符?

Java 概率连接字符?,java,Java,如果我有‘a’、‘b’、‘c’,则概率为: ** abc acb bac bca cab cba ** BufferedReader input=new BufferedReader(new FileReader(“input.in”); intx=Integer.parseInt(input.readLine()); 字符串[]ar=新字符串[x]; 字符串输出=”; for(int i=0;i

如果我有‘a’、‘b’、‘c’,则概率为:

**
abc
acb
bac
bca
cab
cba
**
BufferedReader input=new BufferedReader(new FileReader(“input.in”);
intx=Integer.parseInt(input.readLine());
字符串[]ar=新字符串[x];
字符串输出=”;
for(int i=0;i

也许更重要的是,我该如何编码呢?

如果我理解正确,你需要得到一个字谜列表。递归将为您提供一个简洁的解决方案。以下是解决问题的方法:

  • 要对n个字母的单词进行字谜分析,您可以对最右边的n-1个字母进行字谜分析,因此要对单词“user”进行字谜分析,您可以修改字母
    u
    ,并对
    ser
    进行所有可能的字谜分析
  • 在这之后,你“旋转”这个词,所以“用户”变成了“seru”
  • 重复此过程,直到旋转所有字母,然后返回“用户”
  • 基本情况是一个字母单词:它的字谜是单词本身


    另外,对于递归主题的深入解释,特别是字谜生成的递归方法,您可以阅读Lafore'a“Java中的数据结构和算法”的第6章。

    阅读排列/组合。问题是什么?我一点也不懂。你说的“概率是”,是指排列是吗?
    BufferedReader input = new BufferedReader(new FileReader("input.in"));
        int x = Integer.parseInt(input.readLine()) ;
        String [] ar = new String[x] ;
        String output = "";
    
    
        for(int i =0 ; i< ar.length ; i++)
        {
    
            ar[i] = input.readLine() ;
        }
    
        for(int y = 0 ; y < ar.length ; y++)
        {
            for(int z =y ; z < ar.length ; z++){
    
    
            output = output.concat(ar[z]) ;
    
            }
        }
    
        System.out.println(output);