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

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


silenoz66

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

1 λεπτό πριν, marios28 είπε

Εντελώς:)  Είδα τον πίνακα και κατάλαβα ότι ήθελες τριαδικούς. Δεν τα διάβασα τα επόμενα που έγραψες. Τα παραδείγματά σου πάντως αναφέρονταν σε τριαδικούς. Τελωσπάντων. Ξεκαθάρισε πώς θα λαμβάνεται το range των άλλων ψηφίων για να σε βοηθήσουμε

Έχει γράψει την λύση που του κάνει (αν και εγώ έχω έναν ενδοιασμό :D )

Μόλις τώρα, silenoz66 είπε

Rεεεεεεεε θα  τρελαθούμε
Είπα ότι το ΚΑΘΕ ΨΗΦΙΟ αντιπροσεπεύει και μια μεταβλητή , (Qantity κτλ κτλ κτλ) τα Οποια θα καθορίζονται απο τον USER input) και ότι μόνο το τελυταίο ψηφίο -μεταβλητή παει 0,1,2
image.png.83e94e6e308e059ed3141fed3dbca35d.png

Παραθέτω τι είπα στο μεγάλο ποστ που το εξηγούσα.
Δεν θα γινόταν το quantity order / inventory level να ήταν 0, 1 ή 2 μόνο.

Εν λόγο συντομίας το ε΄γραψα αυτό, το 0, 1,2 να μην σας κουράσω με νούμερα μεγάλα χωρίς λόγο.

Ρε μαν χέσε όλες τις μεταβλητές , το τελευταίο ψηφίο δεν είπες ότι θέλεις να είναι 0 ή 1 ή 2 ?

Το αποτέλεσμα του κώδικα σου έχει και τιμές μεγαλύτερες

Οπότε έρχεται σε αντίθεση με αυτό που γράφεις

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

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

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

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

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

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

 for(int i = 0; i < 1000; i++)
    Console.WriteLine(Int32ToString(i, 3).PadLeft(10, '0'));

                         
public static string Int32ToString(int value, int toBase)
{
    string result = string.Empty;
    do
    {
        result = "0123456789ABCDEF"[value % toBase] + result;
        value /= toBase;
    }
    while(value > 0);
    return result;
}
                         

0000000000
0000000001
0000000002
0000000010
0000000011
0000000012
0000000020
0000000021
0000000022
0000000100
0000000101
0000000102
0000000110
0000000111
0000000112
   .....

 

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

5 λεπτά πριν, tsofras είπε

Έχει γράψει την λύση που του κάνει (αν και εγώ έχω έναν ενδοιασμό :D )

Ρε μαν χέσε όλες τις μεταβλητές , το τελευταίο ψηφίο δεν είπες ότι θέλεις να είναι 0 ή 1 ή 2 ?

Το αποτέλεσμα του κώδικα σου έχει και τιμές μεγαλύτερες

Οπότε έρχεται σε αντίθεση με αυτό που γράφεις

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

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

Μα είπα ότι το παράδειγμα που πόσταρα ήταν απλα τυχαίο παράδειγμα όσον αφορά τα νουμερα... 
Κλεινω death stranding και κάθομαι να γράψω τον κώδικα ακριβώς για δνα καταλάβειςτι θέλω!

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

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

Μα είπα ότι το παράδειγμα που πόσταρα ήταν απλα τυχαίο παράδειγμα όσον αφορά τα νουμερα... 
Κλεινω death stranding και κάθομαι να γράψω τον κώδικα ακριβώς για δνα καταλάβειςτι θέλω!

Δεν ντρέπεσαι ρε να παίζεις?

Πλάκα κάνω

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

Το έκανα τσακ μπαμ για να δείς, κάντον copy-paste σε online compiler python:

 

from itertools import product
stations = int(input("Dwse # station tou systimatos: "))

final_list=list()
for i in range(1, stations+1):
    list_a=int(input(f"dwse to megisto dynato quanity tou {i} stathmou: "))
    list_b=int(input(f"dwse to megisto dynato order poy mporei na dextei o {i} stathmos: "))
    list_c=[0, 1, 2]
    final_list.append(range(0, list_a+1))
    final_list.append(range(0, list_b+1))
    final_list.append(list_c)


print (final_list)

prod = list(product(*final_list))
for i in prod:
    print (i)

Βλέπω να λειτουργεί τέλεια πάντως, τσεκαρε το λίγο να συζητησουμε τους ενδοιασμους σου :D 

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

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

Το έκανα τσακ μπαμ για να δείς, κάντον copy-paste σε online compiler python:

 

from itertools import product
stations = int(input("Dwse # station tou systimatos: "))

final_list=list()
for i in range(1, stations+1):
    list_a=int(input(f"dwse to megisto dynato quanity tou {i} stathmou: "))
    list_b=int(input(f"dwse to megisto dynato order poy mporei na dextei o {i} stathmos: "))
    list_c=[0, 1, 2]
    final_list.append(range(0, list_a+1))
    final_list.append(range(0, list_b+1))
    final_list.append(list_c)


print (final_list)

prod = list(product(*final_list))
for i in prod:
    print (i)

Βλέπω να λειτουργεί τέλεια πάντως, τσεκαρε το λίγο να συζητησουμε τους ενδοιασμους σου :D 

Τώρα μάλιστα , εγώ σχολίασα τον προηγούμενο κώδικα που το τελευταίο ψηφίο ήταν > 2

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

25 λεπτά πριν, tsofras είπε

Δεν ντρέπεσαι ρε να παίζεις?

Πλάκα κάνω

Πήρα χαρά που βρήκα λύση και έιπα να συνεχίσω λίγο το death stranding :D είχα μια εβδομάδα να ακουμπήσω game..(περίεργο για εμενα αχαχαχ)

Εγώ όταν κάνω παραδείγαμτα δν βάζω τα actual νούμερα, βάζω όσα λιγότερα μπορώ για να τρέξει απλά η λογική πίσω απο αυτό.
Μετα κάνω σωστή δόμιση

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

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

Στη θέση σου πάντως θα ρωτούσα καλού κακού τον καθηγητή σου κατά πόσο επιτρέπεται η χρήση τέτοιων libraries γιατί ενδεχομένως να θεωρηθεί cheat η χρήση της product εδώ. Αναλόγως τι ακριβώς εξετάζει η άσκηση.

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

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

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...