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

Python help - Δημιουργία αλγόριθμου για ολους τους δυνατούς συνδιασμούς απο μεταβλητές.


silenoz66

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

  • Απαντ. 37
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοφιλείς Ημέρες

4 λεπτά πριν, pmav99 είπε

google: python + itertools + combinations

Το έχει πάρει το μάτι μου το συσγκεκριμένο αλλά δεν έχω βρεί τρόπο αν το αξιοποιησω ακόμη.
Τoo much information για μία μέρα.

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

1 ώρα πριν, silenoz66 είπε

Καλησπέρα σε όλους,  θα προσπαθήσω να αναλύσω το πρόβλημα μου όσο πιο σύντομα γίνεται χωρίς έξτρα πληροφορίες για να μην χαθούμε.
ΤΟ συγκεκριμένο πρόβλημα αφορά την διπλωματική μου .(Ειμαι μηχανολόγος μηχανικός και δεν είμαι expert στον προγραμματισμό)


Η Ιδεα όσον αφορά το κομμάτι που έχω πρόβλημα:
*Εχουμε user input πόσους stations έχουμε 
* Καθε station έχει 3 μεταβλητές (το ονομα δες μας ενδιαφέρει) έστω q i j 
* Οι μεταβλητές παίρνουν διάφορετικές τιμές ανάλογα το user input και ανάλογα τον σταθμό , όσον αφορά το q και το i, 
*Το j παίρνει τις τιμές 0, 1, 2 ΜΟΝΟ

Τι θέλουμε να κάνουμε :
Για κάθε διαφορετική τιμή στις μεταβλητές του κάθε σταθμού , να βρούμε ΟΛΟΥΣ τους δυνατούς συνδιασμούς του συνολοικού συτήματος
και σε κάθε έναν απο αυτόν θα τρέχω μια function που θα κοιτάει αν μου κάνει ή οχι και μετά θα την κανω save κάπου αλλού(θα το αναλύσω παρακάτω)

Οσον αφορά το order που ΠΡΕΠΕΙ να είναι συγκεκριμένο  για να το δείτε πως είναι: ( έστω οτι οι τιμές παίρνουν μόνο τιμες απο το 0 εως το 2 (για ευκολία))
000 000 000 000 (1ος συνδιασμος- καθε 3αδα αντιπροσωπεύει εναν station και κάθε αριθμος της τριάδας μια μεταβλητή ,  Aρα 4 τριαδες= 4 stations )
000 000 000 001
000 000 000 002
000 000 000 010
000 000 000 011
000 000 000 012
000 000 000 020
κοκ

Σαν πρώτη ιδέα είναι να φτιάξω εναν 2D πίνακα (3χ Ν) οπου Ν=stations και αν έχω εκει μέσα τις 3αδες των αριθμων και να τις πειραζω με την σειρα που και σε δευτερο χρόνο τις αποθηκεύω σε 3d πινακα (3 x N x i ).

Αν ήξερα εξ αρχής πόσες 3αδες θα είχα μπορώ να το κάνω με πολλές for loops η μία μέσα στην άλλη.
Αλλά τώρα απο την στιμγή που έχω user input που καθορίζει το πόσες είναι.. Εχω ΧΑΘΕΙ τελείως...θα σπάσει το κεφάλι μου αλήθεια..

Είχα ξεκινήσει να το κάνω στην C++ (ήταν η μόνη γλώσσα που ήξερα να γράφω κάποιο κώδικα) και τώρα που κάνω κάποια curses στην Python είδα ότι είναι για πολλούς και διάφορους λόγους πιο έυκολο να το κάνω στην python. 

Δεν ξέρω αν θα σε βοηθήσει το σχόλιο μου αλλά το καλύτερο όπλο του προγραμματιστή είναι το χαρτί.

Άσε στην άκρη την γλώσσα και πιάσε το χαρτί να καταγράψεις τον αλγόριθμο , όχι σε ψευδοκώδικα αλλά σε απλή γλώσσα

Αν το καταφέρεις τότε θα είναι εύκολη η λύση σε όποια γλώσσα θέλεις

Κάνε μία προσπάθεια αν θες και γράψε μας να δούμε

Υ.γ. δεν στο λέω γιατί έχω βίτσια , 15 χρόνια μετά εγώ βγάζω χαρτί όταν κολλάω και θέλω να βάλω την σκέψη μου σε μία σειρά

Ακόμη και την λύση αν δεν βρεις , θα καταλάβεις που έχεις πρόβλημα

Δείχνει και από την περιγραφή ότι είναι λίγο μπερδεμένα αυτά που γράφεις , στο χαρτί θα τα ξεμπερδεψεις

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

1 ώρα πριν, tsofras είπε

Δεν ξέρω αν θα σε βοηθήσει το σχόλιο μου αλλά το καλύτερο όπλο του προγραμματιστή είναι το χαρτί.

Άσε στην άκρη την γλώσσα και πιάσε το χαρτί να καταγράψεις τον αλγόριθμο , όχι σε ψευδοκώδικα αλλά σε απλή γλώσσα

Αν το καταφέρεις τότε θα είναι εύκολη η λύση σε όποια γλώσσα θέλεις

Κάνε μία προσπάθεια αν θες και γράψε μας να δούμε

Υ.γ. δεν στο λέω γιατί έχω βίτσια , 15 χρόνια μετά εγώ βγάζω χαρτί όταν κολλάω και θέλω να βάλω την σκέψη μου σε μία σειρά

Ακόμη και την λύση αν δεν βρεις , θα καταλάβεις που έχεις πρόβλημα

Δείχνει και από την περιγραφή ότι είναι λίγο μπερδεμένα αυτά που γράφεις , στο χαρτί θα τα ξεμπερδεψεις

Εχεις πολυ δίκαιο σε ότι γράφεις και σε ευχαριστώ.

Προφανώς και εγώ πριν ξεκινήσω να το προγραμματίζω έκατσα και τα έγραψα όλα σε χαρτί.

Εγώ η αλήθεια είναι ότι ξέρω τι θέλω να κάνω , (τώρα αν το εξήγησα άσχημα είναι άλλο θέμα).
Απλα όταν έχεις πολυ μικρή εμπειρία σε προγραμματισμό είναι φυσικό και επόμενο να ακολουθείς λάθος διαδρομές/λύσεις.
Θα ήθελα να έχω καλύτερες γνώσεις πάνω σε looping/indexes και σε iritate σε listes κτλ κτλ

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

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

30 λεπτά πριν, silenoz66 είπε

Εχεις πολυ δίκαιο σε ότι γράφεις και σε ευχαριστώ.

Προφανώς και εγώ πριν ξεκινήσω να το προγραμματίζω έκατσα και τα έγραψα όλα σε χαρτί.

Εγώ η αλήθεια είναι ότι ξέρω τι θέλω να κάνω , (τώρα αν το εξήγησα άσχημα είναι άλλο θέμα).
Απλα όταν έχεις πολυ μικρή εμπειρία σε προγραμματισμό είναι φυσικό και επόμενο να ακολουθείς λάθος διαδρομές/λύσεις.
Θα ήθελα να έχω καλύτερες γνώσεις πάνω σε looping/indexes και σε iritate σε listes κτλ κτλ

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

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

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

Οπότε πάρε χαρτί και πές μας τι έχεις κάνει, αν σου είναι εύκολο να μας γράψεις και το πρόβλημα κάπως καλύτερα για να το καταλάβουμε και εμείς

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

Λοιπόν έχουμε και λέμε:


Εχουμε ένα σύστημα απο σταθμούς (σκέψου τους σαν μονάδες (εργοστάσια, αποθήκες, retailers κλτ)).
Αυτό το σύστημα έχει πολλούς παραμέτρους οι οποιοι περιγράφουν το σύστημα :


Οι παράμετροι για το κάθε ύπο-συστημα(ας τους πούμε stations) είναι:
1) quantity_order = (το μέγεθος της παραγγελίας που περιμένουμε) 0 : αν δν περιμένουμε or # του quantity που περιμένουμε
2) inventory_level=(πόσο απόθεμα έχουμε στον σταθμό αυτό) 0¨αν δν έχουμε or # το απόθεμα που έχουμε
3) order_status= 0 : αν δν περιμένουμε order , 1: αν περιμένουμε order και βρίσκεται σε 1η φάση , 2: αν περιμένουμε order και βρίσκεται σε 2η φάση

Στo συνολικό σύστημα για να περιγράψουμε 1 μοναδική κατάσταση αρκεί να περιγράψουμε το τι συμβαίνει σε κάθε υποσύστημα.:
Δηλαδή ο 1s station έχει #quantity #inventory #order_status, ο 2os station έχει #quantity #inventory #order_status κ.ο.κ.
Εμεις την κάθε κατάσταση της δίνουμε ένα ''ονομα'' δλδη: 002 100 020 για να καταλάβουμε σε ποιά κατάσταση είμαστε..
τι είναι αυτά τα νούμερα πολυ απλο: η κάθε τριάδα αριθμών αντιπροσοπέυει και έναν station και το κάθε νούμερο την μία απο τις 3 μεταβλητές τους (1o νούμερο quantity_order, 2o νούμερο inventory_level , 3ο νούμερο order_status)
Αρα στο απλό παράδειγμα με 2 station, μια τυχαία κατάσταση 001 012 σημαίνει: στον πρώτο station: quantity=0 inventory=0 order status=1,   στον δευτερο station: quanity=0 inventory=1 order_status=2.


Οπως καταλβαίνουμε ένα τέτοιο σύστημα με τόσες πολλές μεταβλητές έχει ΑΠΕΙΡΟΥΣ δυνατούς συνδιασμούς.
ΟΜΩΣ δεν είναι όλοι εφικτοί στην πραγματικότητα.

Στην μαρκοβιανή ανάλυση αφτού του συστήματος λοιπόν υπάρχει ένας γνωστός πίνακας (Πινακας μετάβασης κατάστασης) , o οποίος μας λέει με τι ρυθμό πάς απο μία κατάσταση σε μια άλλη.


Εγώ καλούμαι λοιπόν να φτίαξω ένα πρόγραμμα το οποίο θα κατασκεύαζει αυτό τον πίνακα ανάλογα με την είσοδο το user .
Ο οποίος θα μας δίνει για αρχή πόσους σταθμούς θέλει να έχει και μετέπειτα διάφορες μεταβλητές απαραίτητες.

Αρά η τελική δομή για αυτό είναι ένας πίνακας μεγέθους n x n όπου n= οι συνολικές εφικτές καταστάσεις
image.png.3a8a78715562165f9bc2e99cdd13cdbb.png

Η φώτο είναι ένα ενδικτικό παράδειγμα του τελικού πίνακα που θέλω να φτιάξω (ξέρω ξέρω γιατί εδώ κάποιοι αριθμοι αντι για 3αδα είναι 2 ή και 1 καποιες φορές(είναι για συντομία))

Αρα για να το κάνουμε πιο απλό το πρόβλημα το χωρίζω στα εξής υπο-προβλήματα:
1) Δημιουργία αλγόριθμου που κάνει generate όλους τους δυνατούς συνδιασμούς(ΕΔΩ ΕΧΩ ΚΑΙ ΤΟ ΠΡΟΒΛΗΜΑ!)
2) Ελεγχος κάθε μίας απο αυτές αν είναι εφικτές (Αυτό δεν μου έιναι καθόλου δύσκολο, έχω σχεδόν ετοιμη function στην c++)
3) Αν η κατάταση αυτή είναι εφικτή αποθήκευση της σε 3D πίνακα (3 x stations x states) 
4) Δημιουργία πίνακα nxn με όλες τις εφικτές καταστάσεις 
5) Γέμισμα nxn πίνακα (αυτός στην φωτό πχ) νομίζω θα τα καταφέρω εδώ (μην σας απασχολεί πως πάμε απο μία κατάσταση σε μία αλλη)

Αρα το μέγιστο πρόβλημα μου είναι στο 1) υπο-πρόβλημα , πώς θα κάνω έναν αλγόριθμο που θα κάνει generate όλους τους δυνατούς συνδιασμούς και μάλιστα με την σειρά που το θέλω, 
η οποία είναι αυξηση των αριθμών απο τα δεξιά προς τα αριστερά και κάθε φορά που αυξάνουμε έναν αριμό στα δεξιά μας, ξανα λουπάρουμε ολου΄ς τους αριθμούς δεξιά.
Παράδειγμα

000
001
002
010
011
012
020
021
022
100
101
102
110
κ.ο.κ.

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

Αν κάποιος κατάφερε και το διάβασε όλο και κατάλαβε μέσες άκρες τοτε Η Ρ Ω Α Σ !!!!
                      

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

Δημοσ. (επεξεργασμένο)
1 ώρα πριν, silenoz66 είπε

.... πώς θα κάνω έναν αλγόριθμο που θα κάνει generate όλους τους δυνατούς συνδιασμούς και μάλιστα με την σειρά που το θέλω, 
η οποία είναι αυξηση των αριθμών απο τα δεξιά προς τα αριστερά και κάθε φορά που αυξάνουμε έναν αριμό στα δεξιά μας, ξανα λουπάρουμε ολου΄ς τους αριθμούς δεξιά.
Παράδειγμα

000
001
002
010
011
012
020
021
022
100
101
102
110
κ.ο.κ.

Σχετικά με αυτό που ζητάς στο παράδειγμα...

Βρίσκεις τον maximum (αν υπάρχει τέτοιος) στον δεκαδικό (3 * 3 * 3.... όσα ψηφία έχεις).. Μέχρι να φτάσεις στον maximum  --> (σε κάθε επανάληψη) τυπώνεις τον αριθμό (ή κάνεις ό,τι θες εσύ) αφού τον μετατρέπεις στο τριαδικό. Ψάξε για μια κατάλληλη function ή φτιάξε τη δική σου στη γλώσσα της επιλογής σου: Ternary number system or Base 3 numbers 

Επεξ/σία από marios28
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

σε Python3  https://trinket.io/python3/4e720679ec

quantity_order = 3
inventory_level=3
order_status= 3
for i in range(quantity_order):
    for j in range(inventory_level):
        for g in range(order_status):
            print(i,j,g)

Επεξ/σία από virxen75
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

4 ώρες πριν, silenoz66 είπε

Λοιπόν έχουμε και λέμε:


Εχουμε ένα σύστημα απο σταθμούς (σκέψου τους σαν μονάδες (εργοστάσια, αποθήκες, retailers κλτ)).
Αυτό το σύστημα έχει πολλούς παραμέτρους οι οποιοι περιγράφουν το σύστημα :


Οι παράμετροι για το κάθε ύπο-συστημα(ας τους πούμε stations) είναι:
1) quantity_order = (το μέγεθος της παραγγελίας που περιμένουμε) 0 : αν δν περιμένουμε or # του quantity που περιμένουμε
2) inventory_level=(πόσο απόθεμα έχουμε στον σταθμό αυτό) 0¨αν δν έχουμε or # το απόθεμα που έχουμε
3) order_status= 0 : αν δν περιμένουμε order , 1: αν περιμένουμε order και βρίσκεται σε 1η φάση , 2: αν περιμένουμε order και βρίσκεται σε 2η φάση

Στo συνολικό σύστημα για να περιγράψουμε 1 μοναδική κατάσταση αρκεί να περιγράψουμε το τι συμβαίνει σε κάθε υποσύστημα.:
Δηλαδή ο 1s station έχει #quantity #inventory #order_status, ο 2os station έχει #quantity #inventory #order_status κ.ο.κ.
Εμεις την κάθε κατάσταση της δίνουμε ένα ''ονομα'' δλδη: 002 100 020 για να καταλάβουμε σε ποιά κατάσταση είμαστε..
τι είναι αυτά τα νούμερα πολυ απλο: η κάθε τριάδα αριθμών αντιπροσοπέυει και έναν station και το κάθε νούμερο την μία απο τις 3 μεταβλητές τους (1o νούμερο quantity_order, 2o νούμερο inventory_level , 3ο νούμερο order_status)
Αρα στο απλό παράδειγμα με 2 station, μια τυχαία κατάσταση 001 012 σημαίνει: στον πρώτο station: quantity=0 inventory=0 order status=1,   στον δευτερο station: quanity=0 inventory=1 order_status=2.


Οπως καταλβαίνουμε ένα τέτοιο σύστημα με τόσες πολλές μεταβλητές έχει ΑΠΕΙΡΟΥΣ δυνατούς συνδιασμούς.
ΟΜΩΣ δεν είναι όλοι εφικτοί στην πραγματικότητα.

Στην μαρκοβιανή ανάλυση αφτού του συστήματος λοιπόν υπάρχει ένας γνωστός πίνακας (Πινακας μετάβασης κατάστασης) , o οποίος μας λέει με τι ρυθμό πάς απο μία κατάσταση σε μια άλλη.


Εγώ καλούμαι λοιπόν να φτίαξω ένα πρόγραμμα το οποίο θα κατασκεύαζει αυτό τον πίνακα ανάλογα με την είσοδο το user .
Ο οποίος θα μας δίνει για αρχή πόσους σταθμούς θέλει να έχει και μετέπειτα διάφορες μεταβλητές απαραίτητες.

Αρά η τελική δομή για αυτό είναι ένας πίνακας μεγέθους n x n όπου n= οι συνολικές εφικτές καταστάσεις
image.png.3a8a78715562165f9bc2e99cdd13cdbb.png

Η φώτο είναι ένα ενδικτικό παράδειγμα του τελικού πίνακα που θέλω να φτιάξω (ξέρω ξέρω γιατί εδώ κάποιοι αριθμοι αντι για 3αδα είναι 2 ή και 1 καποιες φορές(είναι για συντομία))

Αρα για να το κάνουμε πιο απλό το πρόβλημα το χωρίζω στα εξής υπο-προβλήματα:
1) Δημιουργία αλγόριθμου που κάνει generate όλους τους δυνατούς συνδιασμούς(ΕΔΩ ΕΧΩ ΚΑΙ ΤΟ ΠΡΟΒΛΗΜΑ!)
2) Ελεγχος κάθε μίας απο αυτές αν είναι εφικτές (Αυτό δεν μου έιναι καθόλου δύσκολο, έχω σχεδόν ετοιμη function στην c++)
3) Αν η κατάταση αυτή είναι εφικτή αποθήκευση της σε 3D πίνακα (3 x stations x states) 
4) Δημιουργία πίνακα nxn με όλες τις εφικτές καταστάσεις 
5) Γέμισμα nxn πίνακα (αυτός στην φωτό πχ) νομίζω θα τα καταφέρω εδώ (μην σας απασχολεί πως πάμε απο μία κατάσταση σε μία αλλη)

Αρα το μέγιστο πρόβλημα μου είναι στο 1) υπο-πρόβλημα , πώς θα κάνω έναν αλγόριθμο που θα κάνει generate όλους τους δυνατούς συνδιασμούς και μάλιστα με την σειρά που το θέλω, 
η οποία είναι αυξηση των αριθμών απο τα δεξιά προς τα αριστερά και κάθε φορά που αυξάνουμε έναν αριμό στα δεξιά μας, ξανα λουπάρουμε ολου΄ς τους αριθμούς δεξιά.
Παράδειγμα

000
001
002
010
011
012
020
021
022
100
101
102
110
κ.ο.κ.

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

Αν κάποιος κατάφερε και το διάβασε όλο και κατάλαβε μέσες άκρες τοτε Η Ρ Ω Α Σ !!!!
                      

Είδες πόσο ωραία και κατανοητά είναι τώρα ? Ωραίος TS, εγώ θα σε πήγαινα χεράκι χεράκι αλλά σου έγραψαν την λύση σε Python για το κομμάτι που σε μπερδευε , υπόψιν ότι η range μετράει από 0 μέχρι n-1 οπότε το range (3) είναι ουσιαστικά 0,1,2

Αν το κατάλαβες από την λύση τότε οκ, αν όχι πες να το εξηγήσουμε

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

6 ώρες πριν, tsofras είπε

Είδες πόσο ωραία και κατανοητά είναι τώρα ? Ωραίος TS, εγώ θα σε πήγαινα χεράκι χεράκι αλλά σου έγραψαν την λύση σε Python για το κομμάτι που σε μπερδευε , υπόψιν ότι η range μετράει από 0 μέχρι n-1 οπότε το range (3) είναι ουσιαστικά 0,1,2

Αν το κατάλαβες από την λύση τότε οκ, αν όχι πες να το εξηγήσουμε

Αν έχω καταλάβει καλά, δε ζητάει αυτό που δόθηκε παραπάνω στην Python. Αυτό (για τις for), από ό,τι έγραψε αρχικά το ήξερε. O αριθμός δηλαδή δεν τερματίζει στον 222, αλλά ο μέγιστος εξαρτάται από τον χρήστη. Δηλαδή αν δοθούν 4 σταθμοί από το χρήστη τότε ο μέγιστος θα είναι ο 222222222222.

Θέλει να τυπώνονται δηλαδή (έτσι ώστε να παίρνει σε κάθε επανάληψη το output και να το εισάγει σε τρίτη μέθοδο) όλα οι ενδιάμεσοι αριθμοί. Αυτό κατάλαβα εγώ. 

Του έγραψα τι να κάνει παραπάνω.

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

Καλημέρα σε όλους και σας ευχαριστώ πολύ για τις απαντήσεις!!

 

8 ώρες πριν, virxen75 είπε

σε Python3  https://trinket.io/python3/4e720679ec

quantity_order = 3
inventory_level=3
order_status= 3
for i in range(quantity_order):
    for j in range(inventory_level):
        for g in range(order_status):
            print(i,j,g)

Δυστυχώς αυτό κάνει αυτό που θέλουμε, αλλά για μόνο μια 3αδα αριθμών!

Aρα ο user θα εισάγει πόσες 3αδες θα έχουμε με λίγα λόγια.


και ΑΚΟΜΗ πιο σημαντικό ο ΚΑΘΕ ΑΡΙΘΜΟΣ απο αυτούς δεν έχει range(3) o καθένας αριθμός απο τις τριάδες θα έχει ΔΙΚΟ του range (πάλι απο τις εισόδους του user), 
ΜΟΝΟ ο 3ος αριθμος απο την τριάδα πάει μεχρι 2. 

51 λεπτά πριν, marios28 είπε

Αν έχω καταλάβει καλά, δε ζητάει αυτό που δόθηκε παραπάνω στην Python. Αυτό (για τις for), από ό,τι έγραψε αρχικά το ήξερε. O αριθμός δηλαδή δεν τερματίζει στον 222, αλλά ο μέγιστος εξαρτάται από τον χρήστη. Δηλαδή αν δοθούν 4 σταθμοί από το χρήστη τότε ο μέγιστος θα είναι ο 222222222222.

Θέλει να τυπώνονται δηλαδή (έτσι ώστε να παίρνει σε κάθε επανάληψη το output και να το εισάγει σε τρίτη μέθοδο) όλα οι ενδιάμεσοι αριθμοί. Αυτό κατάλαβα εγώ. 

Του έγραψα τι να κάνει παραπάνω.

 

 

7 ώρες πριν, tsofras είπε

 

Μάριε θα ψάξω σήμερα αυτό που έγραψες όχι όμως οτι κατάλαβα και κάτι :D 
Xτες μιλούσα με έναν φίλο μου προγραμματιστή μπας και βοηθήσει κάτι μου πέταξε και αυτός ίσως βρίσκεται λύση με τους τριαδικούς αλλά δεν κάναμε κάτι επι αυτού.
Αν πιστεύεις ότι αυτό που θέλω γίνεται έτσι όπως το είπες , θα δουλέψω αυτή την ιδέα σήμερα

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

Δημοσ. (επεξεργασμένο)
4 ώρες πριν, silenoz66 είπε

Μάριε θα ψάξω σήμερα αυτό που έγραψες όχι όμως οτι κατάλαβα και κάτι :D 
Xτες μιλούσα με έναν φίλο μου προγραμματιστή μπας και βοηθήσει κάτι μου πέταξε και αυτός ίσως βρίσκεται λύση με τους τριαδικούς αλλά δεν κάναμε κάτι επι αυτού.
Αν πιστεύεις ότι αυτό που θέλω γίνεται έτσι όπως το είπες , θα δουλέψω αυτή την ιδέα σήμερα

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

        Main()
        {

            [Ρωτάς τον χρήστη πόσους σταθμούς θέλει... Έστω ότι δίνει Ν]  

            [Τον maximum τον βρίσκεις ως εξής]
            maximum = Math.Pow(3, 3*Ν);  [εδώ θα χρησιμοποιήσεις μια αντίστοιχη συνάρτηση για να βρεις τον maximum.. 3*3*3....*3 ή θα φτιάξεις τη δική σου, αν δεν έχει η γλώσσα]
            for ( i = 0; i < maximum; i++)
            {
                Μετατροπή_Δεκαδικού_Σε_Τριαδικό(i);
               [Στο σημείο τυπώνεται ο τριαδικός αριθμός, ή μπορείς να δουλέψεις όπως θες την παρακάτω μέθοδο (μετατροπή σε τριαδικό).. π.χ. να σου επιστρέφεται string ή οποιουδήποτε τύπου  είσοδο θες να στέλνεις  στη συνάρτηση τη δική σου ]
            }

        }

        void Μετατροπή_Δεκαδικού_Σε_Τριαδικό(int N)
        {

            if (N == 0)
                [τύπωσε 0]; 

           int x = N % 3;

            N /= 3;

            if (x < 0)
                N += 1;

            Μετατροπή_Δεκαδικού_Σε_Τριαδικό(N); [αναδρομικά σχηματίζεται ο αριθμός]


            if (x >= 0)
                [τύπωσε x]
        }

Επεξ/σία από marios28
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Μία παρατήρηση. Ο maximum στο δικό σου δεν είναι ο N σ' αυτό που σου έγραψα.  Στο διόρθωσα επάνω. Το N είναι όσα ψηφία έχεις. Δηλαδή αν έχεις 2 σταθμούς έχεις 6, αν δοθούν 3  σταθμοί έχεις 9 κ.ο.κ. Για να βρεις τον μέγιστο πρέπει να υψώσεις το 3 στο 3*αριθμό σταθμών. Αν έχω καταλάβει καλά τι ζητάς, θα σε καλύψουν τα παραπάνω.

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

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

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

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

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

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

Σύνδεση

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

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