samedi 17 décembre 2016

java - Creating random numbers with no duplicates

I need to create random numbers that will run through an array without duplicates. The problam is the duplication and I can't use any of the utils exept the Scanner for input (teacher instruction) like java.util.Random or java.util.ArrayList.

I use a function called random that my teacher wrote to us and the function newNum is where I need what I have asked.

package exercise;

import java.util.Scanner;

public class Bingo {

static int size = 10;
static int num;
static int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
private static Scanner sc;

public static void main(String[] args) {

    System.out.print("Press Enter to start: ");
    sc = new Scanner(System.in);
    sc.nextLine();
    System.out.println("");

    // int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    // int[] tempArray = arr;

    int num = random();
    // int num = sc.nextInt();

    // System.out.println(num);

    while (size > 0) {
        System.out.println(num);
        size--;
        newArray(num);
        num = random();
        newNum(num);
        // System.out.println(num);
    }

}

public static int random() {

    int max = 10;
    double r = Math.random();
    int num = (int) (r * max + 1);

    return num;
}

public static int newNum(int num) {

    // Here should go the code for the function for getting only new 
    // random  number without duplications

    return num;
}

public static int newArray(int num) {

    int[] tempArray = arr;

    arr = new int[size];

    int x = num - 1;
    for (int i = 0; i < x; i++) {
        if (i < size) {
            arr[i] = tempArray[i];
        }
    }
    for (int i = num; i < size; i++) {
        if (i < size) {
            int y = i - 1;
            arr[y] = tempArray[i];
        } else {
            int a = size - 1;
            arr[a] = tempArray[size];
        }
    }
    return num;
}

}

Thanks for helping.




Aucun commentaire:

Enregistrer un commentaire