pappous_soulis Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Έχω έναν integer του οποίου η τιμή (πρέπει να) είναι το γινόμενο 100 διαφορετικών ακεραίων μεγαλύτερων του μηδενός. Το πρόβλημα είναι ότι λόγω του μεγέθους του γινομένου είναι αδύνατο να εκχωρηθεί σαν τιμή του ακεραίου,και γι'αυτό μου βγάζει λανθασμένο αποτέλεσμα. Πως θα μπορούσα να εμφανίσω το γινόμενο στην οθόνη?
GrandGamer Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Είτε θα δοκιμάσεις Long που είναι 8 byte αντί για 4 byte που είναι ο απλός integer, είτε θα το κάνεις κατευθείαν String όμως δεν θα μπορείς να το πειράξεις μετά(αν είναι μεγαλύτερο από Long).
drm Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Είτε θα πάς σε Long Int τών 8Bytes είτε σε double τών 8 bytes (+round) και υπάρχουν και κάποιοι τύποι για πολύ μεγάλους ακέραιους άλλα είναι language specific...
pappous_soulis Δημοσ. 23 Νοεμβρίου 2008 Μέλος Δημοσ. 23 Νοεμβρίου 2008 Δοκίμασα και unsigned long integer,δεν είναι αρκετός. Το πρόβλημα είναι ότι μου ζητάει έναν αριθμό Κ μεγαλύτερο του 15,ο οποίος ορίζει ένα πεδίο [1,Κ],και έχω έναν πίνακα 100 θέσεων όπου αποθηκεύοντε 100 τυχαίοι ακέραιοι που έχουν τιμές μέσα στο πεδίο [1,Κ].Μιλάμε για τρελές τιμές. Τώρα για string...
GrandGamer Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Μπορείς να κάνεις το εξής κόλπο αφού μιλάμε για πολλαπλασιασμό. Βάλε το αποτέλεσμα των 50 αριθμών σε έναν Long και των άλλων 50 σε άλλον ένα και δώσε το αποτέλεσμα της πράξης των δύο Long κατευθείαν σε String.
PCharon Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 pappous_soulis τί στο καλό εφράζει το γινόμενο αυτό που υπολογίζεις και αναμένεις να φτάσει πχ το 18.446.744.073.709.551.615 (64μπιτος θετικός ακέραιος)??? Πάντως αν υποθέσουμε πως χρησιμοποιείς 32μπιτους ακέραιους εως το μέγιστο της τιμής τους, αντιλαμβάνεσαι πως θα χρειαστείς τόσα bits όσο το γινόμενο του 32 με τον αριθμό των παραγόντων... Ελπίζω να έχεις μια καλή δικαιολογία! Υ.Γ. Στη C ο παραπάνω 64μπιτος ακέραιος γράφεται unsigned long long int
GrandGamer Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Άκυρη η ιδέα μου. Ο αριθμός είναι τόσο μεγάλος που δεν μπορεί να γίνει η πράξη.
pappous_soulis Δημοσ. 23 Νοεμβρίου 2008 Μέλος Δημοσ. 23 Νοεμβρίου 2008 Το γινόμενο δεν εκφράζει τίποτα συγκεκριμένο. Είναι απλά το γινόμενο 100 ακεραίων που ο καθένας έχει τιμή απο 1 έως Κ όπου Κ > 15.
GrandGamer Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Κ>15 παραείναι και 100 αριθμοί παραείναι. Είτε δοκίμασε με Κ<5 είτε δοκίμασε με 50 αριθμούς αλλιώς δεν πρόκειται ποτέ να παίξει σε απλό υπολογιστή σπιτιού.
pappous_soulis Δημοσ. 23 Νοεμβρίου 2008 Μέλος Δημοσ. 23 Νοεμβρίου 2008 Αυτό λέω και γω.Το θέμα είναι ότι είναι άσκηση,οπότε ότι μου λένε κάνω
GrandGamer Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Τότε το μόνο που μπορείς να κάνεις είναι να γράψεις τον κώδικα έστω και αν δεν παίζει.
PCharon Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Υπάρχουν κάποιες τεχνικές για να παίξεις. Βέβαια πρέπει να εξετάζεται και η μεταφερσιμότητα του κώδικα από πλατφόρμα σε πλατφόρμα (portability). Αν προσπαθούσες να φτιάξεις πρόγραμμα θα σου έλεγα να χρησιμοποιήσεις κάποια έτοιμη βιβλιοθήκη από αυτές που έχουν φτιαχτεί για τέτοιο σκοπό. Αν θες να δεις κάτι έτοιμο σε κώδικα/ιδέα... google! Δεν θα αργήσεις να πέσεις πάνω σε κάτι, για παράδειγμα αυτό.
evabb Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Το γινόμενο δεν εκφράζει τίποτα συγκεκριμένο.Είναι απλά το γινόμενο 100 ακεραίων που ο καθένας έχει τιμή απο 1 έως Κ όπου Κ > 15. και ανετα βρισκεις κατι της ταξης του 100! που ειναι ενας αριθμος μεγαλυτερος απο τον αριθμω των αστεριων που υπαρχουν στο συμπαν. μιλαμε ανετα για αρθιμους της ταξης 10^150 ,αν το Κ σου ειναι αρκετα μεγαλο, κατι που ειναι φυσικα αδυνατο να το παρουσιασεις ετσι απλα παρα μονο με δυναμεις υγ ξερω οτι η προσωρινη μνημη (αναμεσα σε δυο υπολογισμους ) μπορει να ειναι μεχρι και 64 bytes για εναν αριθμο ελπιζω να μην κανω λαθος
drmetal Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 Μπορείς να κάνεις λίστες με struct με ακεραίους και να παίξεις με δυνάμεις κλπ, ή μπορείς να χρησιμοποιήσεις libraries που είναι ειδικά για τέτοια θέματα. Μια τέτοια είναι και η GMP Οδηγίες για Windows εδώ: http://eclass.uth.gr/claroline/document/document.php με παραδειγματάκια, έχει ένα και για πολλαπλασιασμό αν θυμαμαι καλά. To έκανα σε και σε Ubuntu όταν το χρειάστηκα άμα ψάξεις στο Google θα βρείς εύκολα πως.
teo64x Δημοσ. 23 Νοεμβρίου 2008 Δημοσ. 23 Νοεμβρίου 2008 http://eclass.uth.gr/claroline/document/document.php Αυτό είναι σελίδα σχολής, χρειάζεται username και τα συναφή.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.