Τρίτη 9 Φεβρουαρίου 2016

Υπολογισμός υποσυνόλων από σύνολο αριθμών!


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

Είναι μια πρόταση!
Στην εικόνα είναι παλαιότερη έκδοση, που δίνει μερικά αποτελέσματα άλλα όχι όλα!
Η παρακάτω είναι καλύτερη έκδοση!


\\ ετοιμασία οθόνης
Οθόνη 5 : Φορμα 80,50 : Πένα 14
\\ ετοιμασία πίνακα   -- έκδοση 2
μεγ=10
μεγ1=μεγ-1
Πίνακας Α(μεγ)
'Α(0) = 1, 1, 1, 1,1, 1, 4, 5,1, 1
Α(0) = 1, 3, 4, 6, 5, 4,12, 13, 7, 8
\\ μεταβλητές
Τοπική σκοπός=9, συνολο, μισό=μεγ δια 2
\\ κύρια επανάληψη
Για κ=0 έως μεγ1 {
      αν α(κ)<σκοπός τότε {
            για τόσα= 1 έως μεγ1 {
                  πάρε_ένα(κ, σκοπός, τόσα)
           }
       }
}
ρουτίνα πάρε_ένα(χ, ν, άσε_τόσα)
      τοπικη κ=1, σουμα, κκ, μμ
      μμ=χ
      Σωρός Νέος {
            \\ ανοίγουμε ένα σωρό τιμών
            \\ βάζουμε τιμές με την βάλε και τις δαβάζουμε με την διάβασε
            \\ καθαρίζει στο πέρας του μπλοκ           
            {
                        Αν ν<=0 τότε έξοδος
                        χ=(μεγ+χ )υπολ μεγ
                        Αν Α(χ)<=ν τότε ν-=Α(χ) : σουμα+=Α(χ) : βαλε χ
                        αν κ+άσε_τόσα >μεγ1 τότε άσε_τόσα=1
                        κ+=άσε_τόσα
                        Αν κ>μεγ1 τότε έξοδος
                        χ=μμ+κ
                        κυκλικα   \\ σηματοδοτούμε το μπλοκ για επανάληψη
            }
            Αν σούμα=σκοπός Τότε {
                  Ενώ όχι κενό {
                        διάβασε κκ
                        Τύπωσε Α(κκ),
                  }
                  συνολο++
                  Πένα 15 {Τύπωσε σουμα, συνολο}
            }  
      }
τέλος ρουτίνας

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.