Προς το περιεχόμενο

Γρίφος...


gus

Προτεινόμενες αναρτήσεις

Δημοσ.

Ή έγραψες λάθος τις εξισώσεις απλά για να δείξεις κάτι που είχες πιάσει ήδη σε θεωρητικό επίπεδο.

 

Το λέω αυτό γιατί δεν καταλαβαίνω τι σημαίνει το "αφαιρετικά" όταν δημιουργείς εξισώσεις από τα δεδομένα του γρίφου.

  • Απαντ. 105
  • Δημ.
  • Τελ. απάντηση
Δημοσ.
(3,3,7,7)

 

7(3/7+3)=24

 

 

(2,3,10,10)

 

10+2(10-3)=24

 

Σωστός!

 

Για πάρτε ένα ακόμα.

 

4 άτομα είναι στη μια πλευρά μιας γέφυρας και θέλουν να την διασχίσουν. Η γέφυρα έχει τρύπες και επειδή είναι σκοτεινά για κάθε διαδρομή που θα κάνουν θα πρέπει να κουβαλάνε μαζί τους και το μοναδικό φακό που έχουν. Επίσης η γέφυρα μπορεί να κρατήσει το βάρος μόνο 2 ατόμων.

Το 1ο άτομο διασχίζει τη γέφυρα σε 1 λεπτό.

Το 2ο άτομο διασχίζει τη γέφυρα σε 2 λεπτά.

Το 3ο άτομο διασχίζει τη γέφυρα σε 5 λεπτά.

Το 4ο άτομο διασχίζει τη γέφυρα σε 10 λεπτά.

Αν δυο άτομα διασχίσουν τη γέφυρα μαζί θα κάνουν το χρόνο του βραδύτερου μιας και πρέπει να φωτίζεται η διαδρομή ανά πάσα στιγμή.

Ποιος είναι ο ελάχιστος χρόνος που θα κάνουν για να βρεθούν όλοι στην άλλη πλευρά της γέφυρας; :confused:

 

Όποιος το βρει ας γράψει τη λύση με άσπρα.

Δημοσ.

Ο 1ος μαζί με τον 2ο περνάνε απέναντι: t1=2min

O 1ος γυρνάει πίσω: t2=1min

O 1ος μαζί με τον 3ο περνάνε απέναντι: t3=5min

Ο 1ος γυρνάει πίσω t4=t2=1min

O 1ος μαζί με τον 4ο περνάνε απέναντι: t5=10min

 

Σ(t_i)=2+1+5+1+10=19min

Αν είναι αυτό, παραήταν εύκολο σε σχέση με τα προηγούμενα. Και πολύ προφανές, γι'αυτό και μου έχουν μπει ψύλλοι στ'αυτιά...

Δημοσ.
Ο 1ος μαζί με τον 2ο περνάνε απέναντι: t1=2min

O 1ος γυρνάει πίσω: t2=1min

O 1ος μαζί με τον 3ο περνάνε απέναντι: t3=5min

Ο 1ος γυρνάει πίσω t4=t2=1min

O 1ος μαζί με τον 4ο περνάνε απέναντι: t5=10min

Σ(t_i)=2+1+5+1+10=19min

 

Αν είναι αυτό, παραήταν εύκολο σε σχέση με τα προηγούμενα...

 

Όχι, μπορούν να το κάνουν σε λιγότερο. :twisted:

Δεν θα έλεγα πως είναι και πολύ εύκολο, αλλά βέβαια δεν είναι και τόσο δύσκολο όσο το πρώτο με τα καπέλα.

Δημοσ.

Άκυρο, βρήκα καλύτερη λύση:

Ο 1ος μαζί με τον 2ο περνάνε απέναντι: t1=2min

O 1ος γυρνάει πίσω: t2=1min

O 3ος μαζί με τον 4ο περνάνε απέναντι: t3=10min

Ο 2ος γυρνάει πίσω t4=2min

O 1ος μαζί με τον 2ο περνάνε απέναντι: t5=2min

 

Σ(t_i)=2+1+10+2+2=17min

Δημοσ.
Άκυρο, βρήκα καλύτερη λύση:

Ο 1ος μαζί με τον 2ο περνάνε απέναντι: t1=2min

O 1ος γυρνάει πίσω: t2=1min

O 3ος μαζί με τον 4ο περνάνε απέναντι: t3=10min

Ο 2ος γυρνάει πίσω t4=2min

O 1ος μαζί με τον 2ο περνάνε απέναντι: t5=2min

 

Σ(t_i)=2+1+10+2+2=17min

 

Είσαι σωστός!

Θα βάλω κανα πιο δύσκολο αργότερα. :twisted:

Δημοσ.
Άντε ρε gus βάλε τίποτα να παιδευτούμε.

 

Ναι, άντε! Είναι προφανές ότι πας για τον τίτλο:

 

riddler.jpg

του Insomnia"!!!

Δημοσ.

|_|_|_|_|_|_|_|_|_|_|

0_1_2_3_4_5_6_7_8_9

Στις 10 θέσεις του παραπάνω σχήματος γράψτε έναν δεκαψήφιο αριθμό, ώστε το ψηφίο στην πρώτη θέση να δείχνει τον συνολικό αριθμό των μηδενικών του αριθμού, το ψηφίο στη θέση με την ένδειξη 1 να δείχνει τον συνολικό αριθμό των 1 και ούτω καθεξής, μέχρι την τελευταία θέση, το ψηφίο της οποίας πρέπει να δείχνει τον συνολικό αριθμό των 9 στον αριθμό. Η απάντηση είναι μοναδική.

Δημοσ.
|_|_|_|_|_|_|_|_|_|_|

0_1_2_3_4_5_6_7_8_9

Στις 10 θέσεις του παραπάνω σχήματος γράψτε έναν δεκαψήφιο αριθμό, ώστε το ψηφίο στην πρώτη θέση να δείχνει τον συνολικό αριθμό των μηδενικών του αριθμού, το ψηφίο στη θέση με την ένδειξη 1 να δείχνει τον συνολικό αριθμό των 1 και ούτω καθεξής, μέχρι την τελευταία θέση, το ψηφίο της οποίας πρέπει να δείχνει τον συνολικό αριθμό των 9 στον αριθμό. Η απάντηση είναι μοναδική.

 

Τι'είπες τώρα ρε??? Γαμάτο φαίνεται. Και δύσκολο.

Δημοσ.

Μπράβο στον Pablo_Hasan, κι επειδή σπάστηκα απίστευτα που με πρόλαβε ενώ το πάλευα και ήμουν κοντά, ορίστε και μία brute-force λύση του προβλήματος σε C:

 

>// riddle2.c by parsifal
#include <stdio.h>
int digitsum(int*, int, int);

int main(void) {
int i, d[10], counter[10], match;

for(d[0]=1; d[0] < 10; d[0]++) {
	for(d[1]=0; d[1] < 10; d[1]++) { if(digitsum(d, 0, 1) > 10) break;
	for(d[2]=0; d[2] < 10; d[2]++) { if(digitsum(d, 0, 2) > 10) break;
	for(d[3]=0; d[3] < 10; d[3]++) { if(digitsum(d, 0, 3) > 10) break;
	for(d[4]=0; d[4] < 10; d[4]++) { if(digitsum(d, 0, 4) > 10) break;
	for(d[5]=0; d[5] < 10; d[5]++) { if(digitsum(d, 0, 5) > 10) break;
	for(d[6]=0; d[6] < 10; d[6]++) { if(digitsum(d, 0, 6) > 10) break;
	for(d[7]=0; d[7] < 10; d[7]++) { if(digitsum(d, 0, 7) > 10) break;
	for(d[8]=0; d[8] < 10; d[8]++) { if(digitsum(d, 0, 8) > 10) break;
	for(d[9]=0; d[9] < 10; d[9]++) { if(digitsum(d, 0, 9) > 10) break;
		printf("Checking number %d%d%d%d%d%d%d%d%d%d\n", d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9]);
		for(i = 0; i < 10; i++) counter[i] = 0;
		for(i = 0; i < 10; i++) counter[d[i]]++;
		match = 1;
		for(i = 0; i < 10; i++) if(counter[i] != d[i]) match = 0;
		if(match == 1) {
			printf("Found! Number is %d%d%d%d%d%d%d%d%d%d\n", d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9]);
			exit(0);
		}
	}}}}}}}}}
}
printf("Number not found \n");
return -1;
}

int digitsum(int*table, int from, int to) {
int j, sum = 0;

for(j = from; j <= to; j++) sum += table[j];
return sum;
}

 

Σε σχέση με το riddle1.c που έφτιαξα αρχικά (και ντρέπομαι να σας δείξω!) είναι απείρως πιο γρήγορο. Το 1ο, όπως το είχα ξεκινήσει, θα τέλειωνε σε μη πεπερασμένο χρόνο!

 

Σε όσους δεν κατέχουν από προγραμματισμό: sorry για το ποζεριλίκι guys, να φανεί ότι κάνουμε κάτι κι εμείς...

 

***Edit: Όχι, δεν προσπάθησα εξαρχής να το λύσω σε C, αλλά σε Notepad...

Δημοσ.

Λοιπόν...

- Έχουμε 8 μπάλες.

- Η μια εξ αυτών είναι βαρύτερη από τις άλλες

- Επίσης έχουμε μια ζυγαριά ισορροπίας (αυτές που είχαν τα μανάβικα παλιά ή αυτή που κρατάει η θεά Θέμις).

- Πως γίνεται με 2 μόνο ζυγίσεις να βρούμε ποια είναι η βαριά μπάλα;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...