`

递归排列组合

    博客分类:
  • Java
J# 
阅读更多

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class recursionTest {
   static int size;
   static int count;
   static char[] arrChar=new char[100];
  
  
   public static void main(String[] args) throws IOException {
  System.out.println("Enter a word:");
  String input=getString();
  size=input.length();
  count=0;
  for(int j=0;j<size;j++)
   arrChar[j]=input.charAt(j);
  doAnagram(size);
  
 }
  
   public static void doAnagram(int newSize) {
    if(newSize==1){   
   return ;
 }
    for(int j=0;j<newSize;j++){
     doAnagram(newSize-1);
     if(newSize==2)
      displayWord();
     rotate(newSize);
    }
 }
   public static void rotate(int newSize) {
  int j;
  int position=size-newSize;
  char temp=arrChar[position];
  for( j=position+1;j<size;j++)
   arrChar[j-1]=arrChar[j];
  arrChar[j-1]=temp;
 }
  
   public static void displayWord(){
    if(count<999)
     System.out.print(" ");
    if(count<99)
     System.out.print(" ");
    if(count<9)
     System.out.print(" ");
   
    System.out.print(++count+" ");
    for( int j=0;j<size;j++)
     System.out.print(arrChar[j]);
   
    System.out.print(" ");
    System.out.flush();
    if(count%6==0)
     System.out.println("");
   }
  
 public static String getString() throws IOException{
  InputStreamReader isr=new InputStreamReader(System.in);
  BufferedReader br=new BufferedReader(isr);
  String s = br.readLine();
  return s;
 }
   }

分享到:
评论

相关推荐

    易语言递归法取排列组合例程

    本例程通过递归法实现了在易语言中获取排列组合的方法,这在处理大量数据或需要进行各种可能性计算的问题时非常有用。 递归法是解决此类问题的经典策略,它通过将问题分解成更小的子问题来解决。在排列组合问题中,...

    基于hadoop用并行递归实现排列组合运算

    ### 基于Hadoop用并行递归实现排列组合运算 #### 背景介绍与问题描述 在计算机科学领域,数字排列组合是经典的算法问题之一,它不仅通俗易懂,而且对于初学者来说非常友好。通过这个问题的学习,我们可以很好地...

    递归法取排列组合易语言源码例程.rar

    递归法取排列组合易语言源码例程.rar 递归法取排列组合易语言源码例程.rar 递归法取排列组合易语言源码例程.rar 递归法取排列组合易语言源码例程.rar 递归法取排列组合易语言源码例程.rar 递归法取排列组合...

    排列组合详解

    "排列组合详解" 排列组合是数学中的一个重要概念,它是组合学的基础。排列是指从给定个数的元素中取出指定个数的元素进行排序,而组合是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心...

    案例排列组合(递归)

    这个名为"案例排列组合(递归)"的主题聚焦于如何利用递归方法来实现排列和组合的计算。递归是一种强大的编程技术,它允许函数调用自身以解决复杂的问题。 首先,我们需要理解排列和组合的概念。排列是指从n个不同...

    java m取n 重复 不重复 排列组合 for循环嵌套递归

    在Java编程语言中,通过不同的控制结构如for循环、递归等可以实现这些排列组合的功能。 #### 二、核心知识点 ##### 1. 排列组合定义 - **排列**:是指从n个不同元素中任取m(m≤n)个元素按照一定的顺序排成一列。...

    C#递归算法:0~N位数的排列组合

    摘要:C#源码,随书源码,递归算法,排列组合 C#递归算法:0~N位数的排列组合,组合的数字在0~5之间,输入需要组合的位数,点击“计算”按钮,程序会列出所有符合条件的数列组合。一个学习C#递归算法的好范例。

    易语言源码递归法取排列组合易语言源码例程.rar

    易语言源码递归法取排列组合易语言源码例程.rar 易语言源码递归法取排列组合易语言源码例程.rar 易语言源码递归法取排列组合易语言源码例程.rar 易语言源码递归法取排列组合易语言源码例程.rar 易语言源码递归法...

    排列组合一个练习以及递归输出排列的PPT

    排列组合算法的递归实现 排列组合是数学中的一种基本概念,指的是从一个集合中选择若干个元素,考虑其顺序的排列方式。排列组合的计算在计算机科学和数学中有非常广泛的应用,例如数据分析、机器学习、密码学等领域...

    C#实现排列组合算法完整实例

    排列组合是常见的数学问题,本文就以完整实例形式讲述了C#实现排列组合算法的方法。分享给大家供大家参考之用。具体方法如下: 首先,数学中排列组合,可表示为:排列P(N,R) 其实排列实现了,组合也就实现了,组合...

    递归求解几类排列组合问题

    递归求解几类排列组合问题 递归是一种常用的算法,它是搜索的另一种实现方式。如果在算法设计中采用一个函数或过程直接或间接地调用它自身来解决问题的方法,则称该方法为递归算法。递归算法必须要设计好一个或若干...

    算法 排列组合生成器 后端

    在IT行业中,排列组合生成器是一种常见的工具,用于生成所有可能的排列或组合,这在很多领域都有应用,比如数据分析、密码学、游戏设计、测试用例生成等。本项目专注于后端实现,使用了SpringBoot框架,这是一种流行...

    Java排列组合算法分析和代码实现

    在编程领域,排列组合是算法设计中的重要组成部分,特别是在数据结构和算法的课程中,以及在解决实际问题如路径搜索、图论问题等时经常用到。本资源深入讲解了如何在Java中实现这两种基本算法。 首先,让我们来理解...

    基于c语言排列组合算法

    基于C语言排列组合算法 排列组合是计算机科学中一个重要的概念,它广泛应用于数学、统计学、计算机科学等领域。排列组合问题的算法设计是指如何高效地生成所有可能的排列或组合。今天,我们将讨论基于C语言的排列...

    易语言源码递归法取排列组合易语言源码例程.7z

    在易语言中,递归法是解决某些问题的一种有效策略,特别是在处理排列组合问题时。递归法是一种函数或过程调用自身的技术,通过不断自我调用来解决问题,尤其适用于数据结构如树、图以及数学上的排列组合计算。 排列...

    c语言实现的排列组合程序

    本文将详细探讨如何使用C语言来实现排列组合算法,并结合递归解决P(m,n)问题。 首先,我们要理解排列和组合的基本概念。排列是指从n个不同元素中取出m个元素,按照一定的顺序进行排列,其数量由阶乘表示,即P(m,n) ...

    计算数字排列组合,任意数字的组合。

    3. **算法实现**:在编程中,常用递归或动态规划方法实现排列组合的计算。例如,回溯法是一种常用的求解排列问题的算法,它通过尝试所有可能的分支并在不适合时回溯。而动态规划则常用于优化组合计数,避免重复计算...

    PHP实现多种类型的排列组合算法

    总的来说,PHP虽然不是专门用于算法计算的语言,但通过巧妙的编程技巧和递归方法,可以有效地实现排列组合算法。以上代码示例展示了如何在PHP中实现这两种算法,通过学习和实践,开发者可以更好地理解和应用这些概念...

Global site tag (gtag.js) - Google Analytics