Τώρα είναι Πέμ 28 Μαρ 2024 08:42 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Πονηροί Ναυαγοί ***
ΔημοσίευσηΔημοσιεύτηκε: Τρί 18 Μάιος 2004 09:21 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 22 Απρ 2004 11:16 am
Δημοσιεύσεις: 60
Τοποθεσία: Θεσσαλονίκη
Syntax: [ Download ] [ Hide ]
!=====================================================================================================================
! Πέντε ναυαγοί προσεγγίζουν ένα νησί του Ειρηνικού όπου ζει ένας πίθηκος ο οποίος τρέφεται με καρύδες κοκοφοίνικα.
! Οι ναυαγοί  μαζεύουν καρύδες με σκοπό να τις μοιραστούν μεταξύ τους την άλλη μέρα και πέφτουν για ύπνο.
! Ένας ναυαγός όμως ξυπνάει και πάει να πάρει το 1/5 που του αναλογεί.
! Μετράει τις καρύδες αλλά δεν διαιρούνται ακριβώς με το 5, αλλά περισσεύει μια.
! Τη δίνει λοιπόν στον πίθηκο, παίρνει το 1/5 και το κρύβει κάπου.
! Η ίδια διαδικασία επαναλαμβάνεται και με τους υπόλοιπους 4 ναυαγούς.
! Οι καρύδες ποτέ δεν διαιρούνται ακριβώς με το 5 αλλά πάντα περισσεύει μια την οποία καρπούται ο πίθηκος.
! Την άλλη μέρα υπάρχουν ακόμη αρκετές καρύδες οι οποίες και πάλι δεν διαιρούνται ακριβώς με το 5, αλλά περισσεύει μια.
! Τη δίνουν στον πίθηκο και ο καθένας  παίρνει το 1/5 από τις υπάρχουσες καρύδες.
! Ποιος είναι ο ελάχιστος αριθμός καρυδών ώστε η περιγραφείσα διαδικασία να είναι δυνατή;
! Το πρόβλημα είναι δυνατόν να λυθεί σχετικά εύκολα θεωρώντας α0 τον αρχικό αριθμό καρυδών
! και αn  ο αριθμός των καρυδών που απέμειναν αφότου και ο n-οστός ναυαγός πήρε το μερίδιο του,
! δηλαδή n=1,2,3,4,5. Σύμφωνα με τα παραπάνω θα ισχύουν τα εξής:   i)  Αn=4/5(Αn-1 -1)    και   ii) Α5=5κ+1 .
! Να αναπτύξετε αλγόριθμο ο οποίος υπολογίζει τη λύση των σχέσεων i)  και ii) για τον ελάχιστο αριθμό  κ
! με α0, α1, α2, α3, α4, α5, ακεραίους επίσης.
!=====================================================================================================================

ΠΡΟΓΡΑΜΜΑ Πονηροί_Ναυαγοί
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i,n,ακεραίος,Ακ[6]
  ΠΡΑΓΜΑΤΙΚΕΣ: Α[6]
  ΛΟΓΙΚΕΣ:βρεθηκε
ΑΡΧΗ
  i <-- 0
  βρεθηκε <-- ψευδής

  ΟΣΟ ΟΧΙ βρεθηκε ΕΠΑΝΑΛΑΒΕ   ! επαναλαμβάνουμε μέχρι να βρούμε όλους τους όρους της ακολουθίας ακεραίους
    i <-- i+5         ! το i απαιτούμε να είναι ακέραιο πολλαπλάσιο του 5
    Α[6] <-- i+1      ! καθώς δεν μπορούμε να έχουμε Α[0], μετασχηματίζουμε τους όρους +1
                      ! δηλ. α0 θα είναι το στοιχείο Α[1] και α5 το στοιχείο Α[6], με Α[6] της μορφής 5κ+1, προφανώς ακέραιος

    ακεραίος <-- 0
    ΓΙΑ n ΑΠΟ 5 ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1 ! υπολογίζουμε κάθε φορά τους υπόλοιπους 5 όρους, θεωρώντας δεδομένο τον Α[6]
      Α[n] <-- 5/4 * Α[n+1] +1   !αναγκαστικά όμως θα ορίζουμε το Αn συναρτήσει του Αn+1 και όχι το Αn συναρτήσει του Αn-1

      ΑΝ Α[n] = Α_Μ(Α[n]) ΤΟΤΕ     ! ελέγχουμε αν οι όροι της ακολουθίας είναι ακέραιοι
        ακεραίος <-- ακεραίος +1
      ΤΕΛΟΣ_ΑΝ

    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΝ ακεραίος=5 ΤΟΤΕ             ! απαιτούμε για να σταματήσουμε την επανάληψη και οι 5 όροι να ακέραιοι
      βρεθηκε <-- αληθής
    ΤΕΛΟΣ_ΑΝ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                                   ! ακολουθεί εμφάνιση αποτελεσμάτων
  ΓΡΑΨΕ 'κ=',i DIV 5
  ΓΡΑΨΕ

  ΓΙΑ n ΑΠΟ 1 ΜΕΧΡΙ 6
    Ακ[n] <-- Α_Μ(Α[n])     ! Ακ: βοηθητικός πίνακας για την εμφάνιση αποτελεσμάτων
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ n ΑΠΟ 1 ΜΕΧΡΙ 6
    ΓΡΑΨΕ 'α',n-1,'=',Ακ[n]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ
  ΓΡΑΨΕ 'αρχικά έχουμε ',Ακ[1],' καρύδες'
  ΓΡΑΨΕ
  ΓΙΑ n ΑΠΟ 1 ΜΕΧΡΙ 5              ! εμφανίζουμε όλους τους όρους και πως προκύπτει ο κάθε επόμενος
    ΓΡΑΨΕ  Ακ[n],'-1=',Ακ[n]-1,'  *1/5 =',(Ακ[n]-1) DIV 5, ' άρα ',Ακ[n]-1,'-',(Ακ[n]-1)DIV 5,'= ',(Ακ[n]-1)-(Ακ[n]-1)DIV 5
    ΓΡΑΨΕ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

Syntax: [ Download ] [ Hide ]
!-----------2ος Τρόπος -----------------------------

ΠΡΟΓΡΑΜΜΑ Πονηροί_Ναυαγοί
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: n,ακεραίος
  ΠΡΑΓΜΑΤΙΚΕΣ: Α[6]
ΑΡΧΗ
  Α[6] <-- 1
  ακεραίος <-- 0

  ΟΣΟ ακεραίος<>5 ΕΠΑΝΑΛΑΒΕ
    Α[6] <-- Α[6]+5

    ακεραίος <-- 0
    ΓΙΑ n ΑΠΟ 5 ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
      Α[n] <-- 5/4 * Α[n+1] +1
      ΑΝ Α[n] = Α_Μ(Α[n]) ΤΟΤΕ
        ακεραίος <-- ακεραίος +1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'κ=',(Α_Μ(Α[6])-1) DIV 5
  ΓΡΑΨΕ

  ΓΙΑ n ΑΠΟ 1 ΜΕΧΡΙ 6
    ΓΡΑΨΕ 'α',n-1,'=',Α_Μ (Α[n])
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 4 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
Προβολές: