Χρήση της random

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Knorcedger
Script Master
Δημοσιεύσεις: 1226
Εγγραφή: 18 Μάιος 2004 04:29
Επικοινωνία:

Χρήση της random

Δημοσίευση από Knorcedger » 11 Δεκ 2006 11:16

Όταν πρωτοάρχισα τον προγραμματισμό (με Pascal, στο πρώτο έτος της σχολής) ένα πράγμα που χρειαζόμουν, αλλα αν θυμάμαι καλα, ποτε δεν το βρήκα, ήταν πως θα πάρω τυχαίους αριθμούς από μια συνάρτηση.

Στην actionscript, οι τυχαίοι αριθμοί βγαίνουν πολύ ευκολα από την συνάρτηση random

Δομή: random(number);

Όπου number = ένας οποιοσδήποτε αριθμός (π.χ. 100)

Το αποτέλεσμα που θα πάρουμε από το random(100) είναι ένας αριθμός από 0 έως 99.

Επίσης, πολύ συχνό είναι να θέλουμε έναν τυχαίο αριθμό μεταξύ δύο άλλων αριθμών. Για παράδειγμα, θέλουμε έναν τυχαίο αριθμό μεταξύ του 30 και του 70. Για να το πετύχουμε αυτο, δεν έχουμε παρά να χρησιμοποιήσουμε τον παρακάτω κώδικα.

Κώδικας: Επιλογή όλων

Math.floor(Math.random() * (70 - 30)) + 30;
Η εντολή Math.floor στρογγυλοποιεί το αποτέλεσμα ώστε αυτο να γίνει ακέραιος ίσος ή μικρότερος του αριθμού που υπάρχει στην παρένθεση.


[Έφτασα αισίως και τα 1000 posts, τι κερδίζω;]
Εικόνα
myUbuntu.gr[Ελληνικός οδηγός για Ubuntu]

dimigo
Δημοσιεύσεις: 44
Εγγραφή: 19 Μαρ 2004 17:08

Χρήση της random

Δημοσίευση από dimigo » 21 Φεβ 2007 16:42

Μέχρι εδώ, όλα καλά με την random. ..
Τι γίνεται όμως όταν θέλω να πάρω μόνο τους μονούς ή τους ζυγούς αριθμούς μέσα σε ένα εύρος και πώς μπορώ να πάρω τυχαίους αριθμούς πολλαπλάσια του 5 και του 10;

Άβαταρ μέλους
Knorcedger
Script Master
Δημοσιεύσεις: 1226
Εγγραφή: 18 Μάιος 2004 04:29
Επικοινωνία:

Χρήση της random

Δημοσίευση από Knorcedger » 21 Φεβ 2007 18:15

Απλά μαθηματικά.

Για πολλάπλάσια του 5, γράψε 5*random(100) [Θα βγάλει αριθμούς από 0 μέχρι 495, όλοι πολλαπλάσια του 5]

Για να ελέγχεις αν ένας τυχαίος αριθμος είναι μονος ή ζυγός γράψε κατι σαν και αυτό

Κώδικας: Επιλογή όλων

v = random(100)
if(v%2 == 1){
   trace("O "+v+" είναι μονός")
}else if(v%2 == 0){
   trace("O "+v+" είναι ζυγός")
}
Εικόνα
myUbuntu.gr[Ελληνικός οδηγός για Ubuntu]

dimigo
Δημοσιεύσεις: 44
Εγγραφή: 19 Μαρ 2004 17:08

Χρήση της random

Δημοσίευση από dimigo » 21 Φεβ 2007 18:41

Απλά μαθηματικά, αλλά η δυσκολία είναι στη σύνταξη της actionscript. Αν δεν έχεις ασχοληθεί με προγραμματισμό, λύσεις σαν αυτή που προτείνεις για τους μονούς και ζυγούς αριθμούς είναι δύσκολο να τις σκεφτείς...

Ευχαριστώ για την άμεση απάντηση.

Άβαταρ μέλους
karnesi
Δημοσιεύσεις: 108
Εγγραφή: 11 Φεβ 2007 19:54

Χρήση της random

Δημοσίευση από karnesi » 21 Φεβ 2007 19:57

Εγώ πάντως θα το εγραφα ετσι......

//////////////////////////////////////
v = random(100)
if (v & 1 > 0 ){
trace("O "+v+" είναι μονός")
}
else {
trace("O "+v+" είναι ζυγός")
}
//////////////////////////////////////

Γλυτώνεις μια πράξη τον επεξεργαστή. :)

Άβαταρ μέλους
Knorcedger
Script Master
Δημοσιεύσεις: 1226
Εγγραφή: 18 Μάιος 2004 04:29
Επικοινωνία:

Χρήση της random

Δημοσίευση από Knorcedger » 21 Φεβ 2007 20:10

Είμαστε εδω να βοηθάμε, όλοι κάποτε χωρις να ξέρουμε τίποτα ξεκινήσαμε.

Έβαλα και το δευτερο if, απλα για να καταλάβει ο dimigo τι γίνεται :)
Εικόνα
myUbuntu.gr[Ελληνικός οδηγός για Ubuntu]

Άβαταρ μέλους
karnesi
Δημοσιεύσεις: 108
Εγγραφή: 11 Φεβ 2007 19:54

Χρήση της random

Δημοσίευση από karnesi » 22 Φεβ 2007 01:12

mallon den prosexes oti anti na diero kano loghiki praxi me to and.basika den to ekan post gia to if alla giati oi pio poloi gia na doyne an enas arithmos einai monos dieroyn me to 2 poy auto koyrazei poli ton epexergasti.
theorisete san tip.

otan theloume na tsekaroyme an enas arithmos einai monos apla tsekaroyme to proto bit toy aritmou.

bits = 1 2 4 8 16 32 64 128

opos katalabneis atrisma zygo pernoume an den einai anameno to proto Bit.
dokimase na kaneis enan broxo me 1.000.000 fores ton tropo soy kai metra ton xrono.
meta dokimase ayto poy soy egrapsa kai metra pali ton xrono
kai ta katalabeis idiis omasi :)

den sthn eipa apla brika eykeria na doso ena tipaki poy agnooyn poloi
den exo dei akoma se ellhniko foroum na elexoyn me bits ;)

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Χρήση της random

Δημοσίευση από cherouvim » 22 Φεβ 2007 08:13

Ωραίο το optimization karnesi αλλά σε αυτό το επίπεδο δεν συνιστάται (εκτός και αν γράφεις κανα raytracer).
Το standard idiom για τους μονούς/ζηγούς είναι το:

Κώδικας: Επιλογή όλων

(v%2==0)
Ευχαριστούμε που το μοιράστηκες πάντως :)

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης