forum.math.uoa.gr

Forum του Τμήματος Μαθηματικών
Ημερομηνία 20 Σεπ 2017, 00:24

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απάντηση στο θέμα  [ 7 δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Αλγόριθμος για συνδυασμούς
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 11:09 
Χωρίς σύνδεση
Regular Forumer
Άβαταρ μέλους

Εγγραφή: 20 Οκτ 2006, 18:35
Δημοσ.: 1723
Τοποθεσια: Αθήνα
Παιδιά θέλω να κάνω το εξής:

Έχω ένα διανύσμα 16 θέσεων, και σε κάθε θέση μπαίνει ή 0 ή 1.

Θέλω να φτιάξω ένα αλγόριθμο που να μου αποθηκεύει (ή να "εκτυπώνει", δεν έχει μεγάλη σημασία αυτό!) όλους τους 2^{16} συνδυασμούς.

Δεν είμαι άσχετος με προγραμματισμό αλλά λίγο που το σκέφτηκα δεν κατάφερα να το βρω. Θα ψάξω και στο Google αλλά είπα να το βάλω και εδώ. Όποια βοήθεια ευπρόσδεκτη. :D :D

_________________
Welcome to Stockholm


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 15:58 
Χωρίς σύνδεση
Regular Forumer
Άβαταρ μέλους

Εγγραφή: 28 Φεβ 2006, 00:25
Δημοσ.: 4854
Τοποθεσια: Χολαργός
Δεν νομίζω να είναι ο βέλτιστος αλλά σίγουρα δουλεύει.

Για να μην γράφω ολόκληρο τον αλγόριθμο θα σου δείξω πως θα τον έλυνες αν είχες να βρείς τους 2^4 συνδυασμούς.

Κώδικας:
for i = 0 : 1
    for j = 0 : 1
        for k = 0 : 1
            for l = 0 : 1
                disp([i j k l])
            end
        end
    end
end


Όπως κατάλαβες με 16 for το έχεις. Αν βρω κάτι πιο καλό θα το postarw αλλά για την ώρα πάω για καφέ :P

_________________
Η Θυρα13 ειναι αυτο που δε μπορεις να φανταστεις αν δε το ζεις


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 16:16 
Χωρίς σύνδεση
Regular Forumer

Εγγραφή: 09 Μαρ 2006, 14:43
Δημοσ.: 2767
Τοποθεσια: White Hart Lane
Ένας πιο έξυπνος τρόπος, νομίζω, είναι να τους γράψεις με τη σειρά (δηλαδή να κάνεις αλγόριθμο που να το κάνει). Αλλά πρέπει να καταλάβεις πρώτα την αρίθμηση τους.

_________________
Lab Radio


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 16:17 
Χωρίς σύνδεση
Regular Forumer
Άβαταρ μέλους

Εγγραφή: 20 Οκτ 2006, 18:35
Δημοσ.: 1723
Τοποθεσια: Αθήνα
Σωστό Νίκο!! Ευχαριστώ πολύ! και εγώ είχα βρει κάτι αλλά ήταν πολύ πιο μεγάλο από το δικό σου!!

yosi τι εννοείς να τους γράψεις με την σειρά?

_________________
Welcome to Stockholm


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 16:43 
Χωρίς σύνδεση
Regular Forumer

Εγγραφή: 09 Μαρ 2006, 14:43
Δημοσ.: 2767
Τοποθεσια: White Hart Lane
Αν θυμάμαι καλά υπάρχει μια αρίθμιση που πάει κάπως έτσι

0000000000000000
0000000000000001
0000000000000010
0000000000000011
0000000000000100
0000000000000101
0000000000000110
0000000000000111
...

edit: Με λίγη βοήθεια από Daemon, google και wikipedia βρήκα αυτά:
http://en.wikipedia.org/wiki/Binary_num ... _in_binary
http://www.ccci.com/tools/subcalc/binary.html

_________________
Lab Radio


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 18:06 
Χωρίς σύνδεση
Επίτιμος Administrator
Άβαταρ μέλους

Εγγραφή: 18 Φεβ 2006, 22:25
Δημοσ.: 1377
Τοποθεσια: Nowhere Land
Ίσως το πιο απλό θα ήταν να πάρεις μια for που διατρέχει όλα τα νούμερα από 0 ως 2^n - 1 και για τον καθἐνα να εκτυπώνεις την δυαδική παράστασή του.


edit: ουπς, μάλλον το ίδιο πράμα λέμε γιόσης, τώρα σε είδα... :oops:

_________________
\exists x.\varphi(x) \rightarrow \forall x.\varphi(x)


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: 04 Μάιος 2008, 22:28 
Χωρίς σύνδεση
Regular Forumer
Άβαταρ μέλους

Εγγραφή: 28 Φεβ 2006, 00:25
Δημοσ.: 4854
Τοποθεσια: Χολαργός
Το πρόβλημα σε αυτό που λέτε είναι ότι πρέπει να ορίσετε ένα πρόγραμμα που να υλοποιεί την μετατροπή ενός αριθμού στη δυαδική του μορφή.
Αν δεις yosi προσεκτικά τον αλγόριθμο που προτείνω αυτό ακριβώς κάνει.
Δηλαδή ξεκινά μια λίστα από το 0 και τερματίζει στο 2^{16}-1

_________________
Η Θυρα13 ειναι αυτο που δε μπορεις να φανταστεις αν δε το ζεις


Κορυφή
 Προφίλ  
 
Τελευταίες δημοσιεύσεις:  Ταξινόμηση κατά  
Δημιουργία νέου θέματος Απάντηση στο θέμα  [ 7 δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μελη σε συνδεση

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


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group