Προς το περιεχόμενο

Εντολή για random double στη java


monkey90

Προτεινόμενες αναρτήσεις

Ψάχνω στο google αλλά δε μπορώ να βρω ακριβώς το συγγεκριμένο που θέλω. Θέλω μία εντολή να μου βρίσκει έναν τυχαίο αριθμό

μεταξύ 10.00 και 1000.00 (λεφτά) χρησιμοποιώ την:

Random generator = new Random();

double balance =generator.nextDouble() * (1000 - 10 + 1);

 

με import java.util.Random; αλλά εμφανίζει πολλά ψηφία μετά το , ενώ εγω χρειάζομαι 2...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βασικά ακόμα καλύτερα δοκίμασε:

 

>double balance = generator.nextInt(1000-10)+10+generator.nextDouble();

 

Νομίζω ότι αυτό όχι μόνο θα παίξει τέλεια αλλά θα σου δώσει και τα δεκαδικά αν τα θες τόσο πολύ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 3 χρόνια αργότερα...

Καλησπέρα παιδιά και χρόνια πολλά, για να μην ανοίγω καινούριο θέμα είπα να γράψω εδώ... 

 

Θέλω να γράψω μια μέθοδο pivot που ουσιαστικά να μου βρίσκει τυχαία έναν αριθμό του πίνακα α[ ] που είναι γεμισμένος με ακεραίους αριθμούς!!! Ουσιαστικά την εντολή random δεν ξέρω πως να συντάξω γιατί δεν την έχω χρησιμοποιησει ξανά!!!

 

Ευχαριστώ!!!

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλησπέρα παιδιά και χρόνια πολλά, για να μην ανοίγω καινούριο θέμα είπα να γράψω εδώ... 

 

Θέλω να γράψω μια μέθοδο pivot που ουσιαστικά να μου βρίσκει τυχαία έναν αριθμό του πίνακα α[ ] που είναι γεμισμένος με ακεραίους αριθμούς!!! Ουσιαστικά την εντολή random δεν ξέρω πως να συντάξω γιατί δεν την έχω χρησιμοποιησει ξανά!!!

 

Ευχαριστώ!!!

 

αυτο σου κανει?

 

 

 

import java.util.Random;

public class MyPivot {
    public static void main(String[] args) {
        int[] a = null;
        int[] b = {};
        int[] c = {123};
        int[] d = {1,2};
        int[] e = {4314,312,432,14,1324,312,4,3214,132,432,14,3214,132,4};
        
        //System.out.println(MyPivot.pivot(a));
        //System.out.println(MyPivot.pivot();
        System.out.println(MyPivot.pivot(c));
        System.out.println(MyPivot.pivot(d));
        System.out.println(MyPivot.pivot(e));

    }

    public static int pivot(int[] arr) {
           if(arr == null) {  
                  throw new NullPointerException("Can't handle null arrays");
           }
           
           int len = arr.length;
           if(len == 0) {    
              throw new IllegalArgumentException("Can't handle zero-length arrays.");  
           }
           
           int min = 0;
           int max = len-1;
           int randIndex = MyPivot.randInt(min, max);
           
           int result  = arr[randIndex];
           return result;
    }
    
    /**
     * Returns a pseudo-random number between min and max, inclusive.
     * The difference between min and max can be at most
     * <code>Integer.MAX_VALUE - 1</code>.
     *
     * @param min Minimum value
     * @param max Maximum value.  Must be greater than min.
     * @return Integer between min and max, inclusive.
     * @see java.util.Random#nextInt(int)
     */
    public static int randInt(int min, int max) {

        // NOTE: Usually this should be a field rather than a method
        // variable so that it is not re-seeded every call.
        Random rand = new Random();

        // nextInt is normally exclusive of the top value,
        // so add 1 to make it inclusive
        int randomNum = rand.nextInt((max - min) + 1) + min;

        return randomNum;
    }
}

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες


    public static int randInt(int min, int max) {

        // NOTE: Usually this should be a field rather than a method
        // variable so that it is not re-seeded every call.
        Random rand = new Random();

        // nextInt is normally exclusive of the top value,
        // so add 1 to make it inclusive
        int randomNum = rand.nextInt((max - min) + 1) + min;

        return randomNum;
    }
}
 

 

Αυτό είναι λογικά αυτό που ψάχνω αλλά εγώ έχω τα στοιχεία μου σε πίνακα και θέλω να διαλέξω ένα στοιχείο του πίνακα για pivot όχι έναν οποιονδήποτε ακέραιο και μετά να χωρίσω τα στοιχεία οπότε αυτή η εντολή δεν μου δουλεύει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτή είναι η εκφώνηση:

 

 

Η qsort: είναι μια υλοποίηση της quicksort θέσης. Για την υλοποίηση καλεί την
μέθοδο diamerisi (με παραμέτρους τον πίνακα, τη θέση του πρώτου στοιχείου και το
πλήθος των στοιχείων) και επιστρέφει την θέση του pivot που επιλέχθηκε. Επίσης
έχει διαμερίσει τον πίνακα σύμφωνα με το επιλεγμένο pivot.

 

Η diamerisi: είναι η μέθοδος που καλύπτει τις παραπάνω απαιτήσεις της qsort

 

Και αυτό είναι αυτό που έχω φτιάξει:

 

 

  public static void qsort(int [] data, int f, int n) {
        int na;
        int nb;
        int pivot;
        if (n>1)
        {
            pivot = diamerisi(data, f, n);
            na=pivot-f;
            nb=n-na-1;
            qsort(data, f, na);
            qsort(data, pivot+1, nb);
}
}
    

private static int diamerisi(int [] data, int f, int n) {
     
    int w = f + (int)(Math.random() * (n + 1));
 
return w;


}

 

Δεν μπορώ να βρω το λάθος μου!!! Όποιος ξέρει ας με βοηθήσει, δεν θέλω να μου πει την λύση απευθείας αλλά ένα hint για να το παλέψω και να την βρω εγώ!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλησπέρα παιδιά και καλή χρονιά, έχουν περάσει μέρες και κανείς δεν μου έχει δώσει κάποια βοήθεια, ίσως να μην υπάρχει κάποιος που να γνωρίζει, γι' αυτό το λόγο μήπως μπορείτε να μου πείτε που μπορώ να απευθυνθώ για βοήθεια???

 

Σας ευχαριστώ!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...