olga Δημοσ. 27 Δεκεμβρίου 2004 Δημοσ. 27 Δεκεμβρίου 2004 Pws ginetai enas anadromikos algorithmos me onoma DYNAMH me th morfh pseudokwdika, gia thn ypswsh akeraiou arithmou sw akeraia thetikh dynamh me bash auton ton typo a b = a ( DIV (2) * a (b+1) DIV (2) YG: OTI DEN EINAI bold EINAI EKTHETHS THANKS A LOT
Jaco Δημοσ. 27 Δεκεμβρίου 2004 Δημοσ. 27 Δεκεμβρίου 2004 Έτσι όπως το γράφεις δεν ζητάς να σου πούμε κάτι συγκεκριμένο, αλλά μπορώ να σου πω ότι είναι αναδρομικός ο αλγόριθμος επειδή...: a^(b)DIV(2)*a^(b+1)DIV(2)= a^(b)DIV(2)*a^(b)DIV(2)*a^(1)DIV(2)= a^(*a^(1)DIV(2)= a^(*a^(T)= a^(+(T) Οπότε πράγματι έχεις έναν αναδρομικό αλγόριθμο του οποίου η έξοδος εξαρτάται από την επόμενη τιμή... τέτοιου ελιδους αλγόριθμοι χρησιμοποιούνται στα DSP για φιλτράρισμα δειγμάτων... Μετά από αυτό τι ακριβώς θέλεις...? Να πραγματοποιείς το αλγόριθμο...? Τότε απλά χρησιμοποιείς έναν BUFFER από τον οποίο παίρνεις την τιμή του α^(Τ) και υπολογίζεις την έξοδο σου με καθυστέρηση σταθεράς χρόνου (Τ)... οπότε το σύστημα σου δεν είναι real time (επειδή είναι αναδρομικό ούτως ή άλλως) αλλά με delay... όπως και να έχει χρειάζεσαι τον buffer που θα κάνει τον υπολογισμό και η έξοδος σου θα είναι πάντα πίσω κατά (Τ)... Αυτό μπορείς να το κάνεις με διάφορες γλώσσες προγραμματισμού... εξαρτάται τι χρησιμοποιείς εσύ...
Sta Δημοσ. 28 Δεκεμβρίου 2004 Δημοσ. 28 Δεκεμβρίου 2004 Αν και αυτό μοιάζει με εργασία στη Γ Λυκείου, μία λύση ίσως θα ήταν η εξής: ΣΥΝΑΡΤΗΣΗ ΔΥΝΑΜΗ(a,:INTEGER; ΔΙΕΠΑΦΗ ΕΙΣΟΔΟΣ a,b: INTEGER; ΑΡΧΗ EΑΝ b=0 TOTE ΔΥΝΑΜΗ:=1 EAN b=1 TOTE ΔΥΝΑΜΗ:=a ΑΛΛΙΩΣ ΔΥΝΑΜΗ:=ΔΥΝΑΜΗ(a,b div 2) * ΔΥΝΑΜΗ(a,(b+1) div 2); ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
olga Δημοσ. 28 Δεκεμβρίου 2004 Μέλος Δημοσ. 28 Δεκεμβρίου 2004 eyharistw gia thn amesh antapokrish sas, alla auto pou thelw einai na graftei me thn morfh pseudokwdika sta ellinika ΑΡΧΗ . ..ΕΝΤΟΛΕΣ ΤΕΛΟΣ DEN KSERW AN KATALABATE...,peripou opws h apanthsh tou sta EYXARISTW...
Donacgr Δημοσ. 28 Δεκεμβρίου 2004 Δημοσ. 28 Δεκεμβρίου 2004 an katalava kala theleis na sou poume ton algorithmo? vasika se enan algorithmo xrisimopioume kai kapoia sxedia, analoga ti theloume na knoume an einai ena loop, mia entoli ena apotelesma h telos pantos to kathena mpenei sto dikotou sxedio! kati tetoio theleis? giati i lisi pou sou edose o sta pistevo oti einai edaxei an de zitas kati tetoio!
olga Δημοσ. 28 Δεκεμβρίου 2004 Μέλος Δημοσ. 28 Δεκεμβρίου 2004 Μία απλή ΑΝΑΔΡΟΜΙΚΗ συνάρτηση είναι η επόμενη ΔΥΝΑΜΗ(a,, όπου υποθέτουμε ότι υψώνουμε το a στην b (τα a,b είναι ακέραιοι και το b θετικός). ΣΥΝΑΡΤΗΣΗ ΔΥΝΑΜΗ(a,:INTEGER; ΔΙΕΠΑΦΗ ΕΙΣΟΔΟΣ a,b: INTEGER; ΑΡΧΗ EΑΝ b=0 TOTE ΔΥΝΑΜΗ:=1 EAN b=1 TOTE ΔΥΝΑΜΗ:=a ΑΛΛΙΩΣ ΔΥΝΑΜΗ:=a * ΔΥΝΑΜΗ(a,b-1); ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ Η συνάρτηση αυτή εκτελεί b-1 πολλαπλασιασμούς για να βρει το αποτέλεσμα της ύψωσης ab. Δηλαδή αν θέλαμε να υψώσουμε το 2^12 με βάση τον παραπάνω αλγόριθμο πρέπει να εκτελεστούν 11 πολλαπλασιασμοί. Ωστόσο, μπορούμε να υψώσουμε σε δύναμη με έναν εναλλακτικό αλγόριθμο. Για παράδειγμα, παρατηρούμε ότι αν υψώσουμε το a στο τετράγωνο με έναν πολλαπλασιασμό (δηλαδή, a*a = a2), τότε το a4 μπορεί να προκύψει με έναν επιπλέον πολλαπλασιασμό (δηλαδή, a2* a2) αντί για άλλους δύο (π.χ. a2*a* a). τοτε ισχύει ο παραπάνω τύπος που σας έγραψα
Sta Δημοσ. 29 Δεκεμβρίου 2004 Δημοσ. 29 Δεκεμβρίου 2004 Μιάς και το θέτεις έτσι, μία πιθανή λύση θα ήταν η εξής: > ΣΥΝΑΡΤΗΣΗ ΔΥΝΑΜΗ(a,b):INTEGER; ΔΙΕΠΑΦΗ ΕΙΣΟΔΟΣ a,b: INTEGER; ΑΡΧΗ EΑΝ b=0 TOTE ΔΥΝΑΜΗ:=1 EAN b=1 TOTE ΔΥΝΑΜΗ:=a ΑΛΛΙΩΣ ΕΑΝ (b είναι άρτιος) ΤΟΤΕ ΔΥΝΑΜΗ:=ΔΥΝΑΜΗ(a,b div 2) ^2 ; ΑΛΛΙΩΣ ΔΥΝΑΜΗ:=(ΔΥΝΑΜΗ(a,b div 2) ^2)*a; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ Με την έκφραση ^2 εννοείται ύψωση στο τετράγωνο.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.