# Java - Permutation Programs

Not what you're looking for?

Write a program that produces random permutations of the numbers 1 to 10. To generate a random permutation, you need to fill an array with the numbers 1 to 10 so that no two entries of the array have the same contents. You could do it by brute force, by calling Random.nextInt until it produces a value that is not yet in the array. Instead, you should implement a smart method. Make a second array and fill it with the numbers 1 to 10. Then pick one of those at random, remove it, and append it to the permutation array. Repeat 10 times. Implement a class PermutationGenerator with a method

int[] nextPermutation

Use the following class as your main class:

/**

This class prints 5 permutations of the numbers 1 through 10.

*/

public class PermutationPrinter

{

public static void main(String[] args)

{

PermutationGenerator gen = new PermutationGenerator(10);

for (int i = 1; i <= 5; i++)

{

for (int n : gen.nextPermutation())

System.out.print(" " + n);

System.out.println();

}

}

}

Complete the following class in your solution:

import java.util.Random;

/**

This class generates permutations of a sequence of integers

1...length.

*/

public class PermutationGenerator

{

. . .

/**

Construct a PermutationGenerator object.

@param length the length of the permutations generated

by this generator.

*/

public PermutationGenerator(int length)

{

. . .

}

/**

Gets the next permutation.

@return the array containing the next permutation

*/

public int[] nextPermutation()

{

. . .

}

}

##### Purchase this Solution

##### Solution Summary

Java permutation programs are examined.

##### Purchase this Solution

##### Free BrainMass Quizzes

##### Javscript Basics

Quiz on basics of javascript programming language.

##### Inserting and deleting in a linked list

This quiz tests your understanding of how to insert and delete elements in a linked list. Understanding of the use of linked lists, and the related performance aspects, is an important fundamental skill of computer science data structures.

##### C# variables and classes

This quiz contains questions about C# classes and variables.

##### Basic Networking Questions

This quiz consists of some basic networking questions.

##### Java loops

This quiz checks your knowledge of for and while loops in Java. For and while loops are essential building blocks for all Java programs. Having a solid understanding of these constructs is critical for success in programming Java.