pctechnology - overclockers

Go Back   pctechnology - overclockers > SOFTWARE > ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ansi C,C++,Java,ASP,PHP,VB,.NET και οποιαδήποτε άλλη τεχνολογία σας ενδιαφέρει. Για αρχάριους αλλά και προχωρημένους...

Reply
 
Thread Tools
Old 03-02-2006, 01:00   #1
lilou!
Junior Member
 
Join Date: Feb 2006
Age: 27
Posts: 16
ΠΥΡΓΟΙ ΤΟΥ ΑΝΟΙ

Hi! Μπορει καποιος να μου εξηγησει πωσ δουλευουν αυτα τα προγραμμα σχετικα με τους πυργους του ανόι?


/* Start post is post 0. */


/* If # posts even, then final post is post 1, else is post 2 */




#include <stdio.h>


#include <stdlib.h>




void main(void)


{


int n, x;


printf( "How many disks? " );


scanf( "%d", &n );


puts( "\n\n" );




for (x=1; x < (1 << n); x++)


printf( "move from pole %i to pole %i.\n", (x&x-1)%3, ((x|x-1)+1)%3 );


}





Πρόγραμμα 2:



/* Start post is post 0. */


/* If # posts even, then final post is post 1, else is post 2 */


#include <stdio.h>


#include <stdlib.h>


int main(void)


{ int n, x, to, fr;


unsigned int i, j;


printf( "How many disks? " );


scanf( "%d", &n );


puts( "\n\n" );


for (x=1; x < (1 << n); x++) {


i=x&x-1; fr=(i+i/3)&3;


i=(x|x-1)+1; to=(i+i/3)&3;


for(i=x, j=1; ; i>>=1, j++) { if(i&1) break; }


printf( "move disc %i from %i to %i\n", j, fr, to ); } }

please αν ξερει καποιος ας βοηθησει μια ασχετη φοιτητρια!
Ο χρήστης lilou! δεν είναι συνδεδεμένος   Reply With Quote
Old 03-02-2006, 01:40   #2
circular
Technical Administrator
 
circular's Avatar
 
Join Date: Apr 2004
Location: 127.0.0.1
Age: 33
Posts: 2,307
Ρίξε μια ματια εδω http://en.wikipedia.org/wiki/Towers_of_Hanoi εχει και animations Που θα σε βοηθησουν να το καταλαβεις.
__________________

Clean living under difficult circumstances :: Pete Meaden
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect :: Linus Torvalds
Ο χρήστης circular δεν είναι συνδεδεμένος   Reply With Quote
Old 04-02-2006, 22:19   #3
lilou!
Junior Member
 
Join Date: Feb 2006
Age: 27
Posts: 16
Wink

Hi!και ευχάριστο για την απάντηση αλλα δεν με βοηθησε ιδιαιτερα γιατί εγώ θέλω να καταλάβω πως δουλεύουν τα προγράμματα και ιδιαιτερα στο τέλος και ποια είναι η διαφορα τους!λίγο καθυστερημένα η απάντηση αλλα είχα διάβασμα sorry!εξεταστική βλέπεις!!!και πάλι ευχάριστο!
Ο χρήστης lilou! δεν είναι συνδεδεμένος   Reply With Quote
Old 04-02-2006, 22:25   #4
yop
Eminent Member
 
yop's Avatar
 
Join Date: Jan 2005
Location: Athens
Age: 38
Posts: 925
Quote:
Originally Posted by lilou!
Hi!και ευχάριστο για την απάντηση αλλα δεν με βοηθησε ιδιαιτερα γιατί εγώ θέλω να καταλάβω πως δουλεύουν τα προγράμματα και ιδιαιτερα στο τέλος και ποια είναι η διαφορα τους!λίγο καθυστερημένα η απάντηση αλλα είχα διάβασμα sorry!εξεταστική βλέπεις!!!και πάλι ευχάριστο!
Μπορείς να μας πεις που ακριβώς δυσκολεύεσαι γιατί αν πάρουμε γραμμή γραμμή το προγραμμα δεν θα τελειώσουμε ποτε...
__________________
I love deadlines. I like the whooshing sound they make as they fly by.
--
Douglas Adams
Ο χρήστης yop δεν είναι συνδεδεμένος   Reply With Quote
Old 04-02-2006, 22:32   #5
lilou!
Junior Member
 
Join Date: Feb 2006
Age: 27
Posts: 16
στις δυο τελευταίες γραμμές του προτού που κάνει πράξεις με bit και στις 5 τελευταίες του δευτερου!!
Ο χρήστης lilou! δεν είναι συνδεδεμένος   Reply With Quote
Old 05-02-2006, 21:01   #6
yop
Eminent Member
 
yop's Avatar
 
Join Date: Jan 2005
Location: Athens
Age: 38
Posts: 925
Code:
for (x=1; x < (1 << n); x++)
    printf( "move from pole %i to pole %i.\n", (x&x-1)%3, ((x|x-1)+1)%3 );
1 << n σημαίνει 2 υψωμένο στη δύναμη n (shift 1 left n times)
x&x-1 σημαίνει bitwise AND μεταξύ του x και του x-1 (πχ αν x=3 (ή 11(b)) τότε x&x-1 = 3&2(ή 11(b)&10(b)) = 2 (ή 10(b)))
x|x-1 σημαίνει bitwise OR μεταξύ του x και του x-1 (πχ αν x=3 (ή 11(b)) τότε x|x-1 = 3 (ή 11(b))) ομοίως με παραπάνω.
Στο δεύτερο πρόγραμμα τα ίδια ακριβώς γίνονται με άλλη σειρά (πρώτα ο υπολογισμός και μετά η εκτύπωση). Αυτή η γραμμή υπολογίζει ποιος δίσκος μετακινείται:
Code:
for(i=x, j=1; ; i>>=1, j++) { if(i&1) break; }
Αν δεν καταλαβαίνεις γιατί γίνονται όλα αυτά τότε το λινκ του circular είναι αυτό που πρέπει να διαβάσεις και ιδιαίτερα το http://en.wikipedia.org/wiki/Towers_...nary_solutions
__________________
I love deadlines. I like the whooshing sound they make as they fly by.
--
Douglas Adams
Ο χρήστης yop δεν είναι συνδεδεμένος   Reply With Quote
Old 17-02-2006, 20:17   #7
lilou!
Junior Member
 
Join Date: Feb 2006
Age: 27
Posts: 16
ευχάριστο πολύ για την βοήθεια!η καλύτερα χίλια ευχάριστο γιατί ήταν ακριβώς αυτά που ήθελα για την εργασία μου!
Ο χρήστης lilou! δεν είναι συνδεδεμένος   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +3. The time now is 07:52.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
pctechnology - overclockers