47
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 26, 2022, 19:57:33 pm
|
γιατί στον κώδικα στον υπολογισμό του α είναι N+1-i και όχι N-i? (δεν κάθισα να το σκεφτώ, απλά μου φάνηκε περίεργο) αν και βγάζει νόημα μάλλον από το Ν = 2, αλλά γιατί i =1 μετά και όχι i = 0 από την αρχή;
το ίδιο βγάζει, αλλά ναι, έχεις δίκιο, είναι πιο καθαρό το sum = 0 i = 0 while sum < 1: a = 1/(N-i) if sum+a>=1: break sum += a i += 1 refuels = i
είχα βάλει ένα +1 εκείνη την ώρα και μετά το άφησα Updated code: N = 100 #Total barrels n = N #Remaining barrels
print("Number of total barrels: " + str(N))
sum = 0 refuels = 0 while sum < 1: a = 1/(N-refuels) if sum+a>=1: break sum += a refuels += 1
print("Number of refuels that will be needed: " + str(refuels))
d = 0 #Percentage of covered distance for i in range(refuels, 0, -1): d += 1/n print("Refuel " + str(refuels-i+1) + " will happen at " + str(round(d*100, 2)) +"% of total distance") n -=1 #Dispose a barrel
print("Remaining barrels after all the refuels: " + str(n)) print("Remaining distance to be covered without refuels: " + str(round((1-d)*100, 2)) +"% of total distance") print("Remaining fuel per barrel on top: " + str(round(d*100, 2)) + "% of its total capacity") print("Total barrels that will arrive on top: " + str(round(n*d, 2))) print("Percentage of barrels that will arrive on top: " + str(round(100*n*d/N, 2)) +"% of initial barrels")
edit: επίσης φαίνεται ότι το ποσοστό των βαρελιών που μπορείς να ανεβάσεις συγκλίνει κάπου στο 36.8% or something
|
|
|
48
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 18:50:16 pm
|
@L Από που προκύπτει ότι το πρώτο γέμισμα θα γίνει στο 1% της συνολικής απόστασης?
Σε εκείνο το σημείο όλα τα βαρέλια θα είναι στο 99%. Άρα παίρνεις το 100ο βαρέλι, γεμίζεις τα άλλα 99 και το πετάς στον γκρεμό
|
|
|
49
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 18:15:13 pm
|
Ακριβώς.
Χαχαχαα Αυτό το μισογεμάτο στη μέση το παρατάμε; εδιτ: @L δεν φαίνεται όλο το κώντικα καρντιά μου που και να φαινόταν τότε δεν υπήρχε η Python, τι να κάνουμε, πως να την μάθουμε εμείς οι λίγο πιο παλιοί ας το πω
Στο mTHMMY δεν κάνει scroll ε; Δοκίμασε να κάνεις select ένα ορατό κομμάτι και μετά κίνησε τα selection brackets μέχρι κάτω.
|
|
|
50
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 18:11:23 pm
|
Μα αυτό λέω. Ότι θα δίνει μικρότερο αριθμό βαρελιών στην κορυφή συγκριτικά με την λύση σου. Όπως σου απάντησα κι στο pm, στα 3 βαρέλια με τον τρόπο σου στην κορυφή ανεβάζουμε τα 5/6 ενός βαρελιού, ενώ με την στάση στην μέση ανεβάζουμε το 1/2 ενός βαρελιού.
Έχεις 3 βαρέλια στη μέση με 50% βενζίνη το καθένα(50 50 50). Άρα λες ότι εσύ θα γεμίσεις το ένα βαρέλι και θα έχεις μετά (100 50 0) και θα ανεβάσεις απλά το 100άρι πάνω, το οποίο μέχρι να φτάσει θα πάει στο 50%;;
|
|
|
51
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 18:05:10 pm
|
@Katarameno αυτό είναι το output για 100 βαρέλια:
Number of total barrels: 100 Number of refuels that will be needed: 63 Refuel 1 will happen at 1.0% of total distance Refuel 2 will happen at 2.01% of total distance Refuel 3 will happen at 3.03% of total distance Refuel 4 will happen at 4.06% of total distance Refuel 5 will happen at 5.1% of total distance Refuel 6 will happen at 6.16% of total distance Refuel 7 will happen at 7.22% of total distance Refuel 8 will happen at 8.29% of total distance Refuel 9 will happen at 9.38% of total distance Refuel 10 will happen at 10.48% of total distance Refuel 11 will happen at 11.59% of total distance Refuel 12 will happen at 12.72% of total distance Refuel 13 will happen at 13.85% of total distance Refuel 14 will happen at 15.0% of total distance Refuel 15 will happen at 16.16% of total distance Refuel 16 will happen at 17.34% of total distance Refuel 17 will happen at 18.53% of total distance Refuel 18 will happen at 19.74% of total distance Refuel 19 will happen at 20.96% of total distance Refuel 20 will happen at 22.19% of total distance Refuel 21 will happen at 23.44% of total distance Refuel 22 will happen at 24.71% of total distance Refuel 23 will happen at 25.99% of total distance Refuel 24 will happen at 27.29% of total distance Refuel 25 will happen at 28.6% of total distance Refuel 26 will happen at 29.94% of total distance Refuel 27 will happen at 31.29% of total distance Refuel 28 will happen at 32.66% of total distance Refuel 29 will happen at 34.05% of total distance Refuel 30 will happen at 35.45% of total distance Refuel 31 will happen at 36.88% of total distance Refuel 32 will happen at 38.33% of total distance Refuel 33 will happen at 39.8% of total distance Refuel 34 will happen at 41.3% of total distance Refuel 35 will happen at 42.81% of total distance Refuel 36 will happen at 44.35% of total distance Refuel 37 will happen at 45.91% of total distance Refuel 38 will happen at 47.5% of total distance Refuel 39 will happen at 49.11% of total distance Refuel 40 will happen at 50.75% of total distance Refuel 41 will happen at 52.42% of total distance Refuel 42 will happen at 54.11% of total distance Refuel 43 will happen at 55.84% of total distance Refuel 44 will happen at 57.59% of total distance Refuel 45 will happen at 59.38% of total distance Refuel 46 will happen at 61.19% of total distance Refuel 47 will happen at 63.05% of total distance Refuel 48 will happen at 64.93% of total distance Refuel 49 will happen at 66.86% of total distance Refuel 50 will happen at 68.82% of total distance Refuel 51 will happen at 70.82% of total distance Refuel 52 will happen at 72.86% of total distance Refuel 53 will happen at 74.94% of total distance Refuel 54 will happen at 77.07% of total distance Refuel 55 will happen at 79.24% of total distance Refuel 56 will happen at 81.47% of total distance Refuel 57 will happen at 83.74% of total distance Refuel 58 will happen at 86.06% of total distance Refuel 59 will happen at 88.44% of total distance Refuel 60 will happen at 90.88% of total distance Refuel 61 will happen at 93.38% of total distance Refuel 62 will happen at 95.95% of total distance Refuel 63 will happen at 98.58% of total distance Remaining barrels: 37 Remaining distance to be covered without refuels: 1.42% of total distance Remaining fuel per barrel: 98.58% of its total capacity Total barrels that will arrive on top: 36.47
|
|
|
52
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 17:59:22 pm
|
Ωστόσο, η λύση του exotic( το να κάνεις στάση στην μέση) πάντα θα δίνει μικρότερο αριθμό βαρελιών από το να κάνεις στάση σε οποιοδήποτε άλλο σημείο του διαστήματος.
Και πάντα θα δίνει μικρότερο αριθμό βαρελιών στην κορυφή απ'ότι η λύση μου. Θέλω να σκεφτείς τι θα έκανες στα 3 βαρέλια.
|
|
|
53
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 17:46:06 pm
|
Και γιατί ξεκινάς από τα μισά, από τα 50 και όχι από τα 25 ή τα 10 να κάνεις τον ίδιο συνειρμό? Κάτι δε μ αρέσει στο από πότε επιλέγεις να κάνεις "ισολογισμό". Ακριβώς αυτό. Αυτός ο ισολογισμός συμβαίνει στα μισά της διαδρομής μόνο όταν τα αρχικά βαρέλια είναι 2.
|
|
|
54
|
Χαλαρή συζήτηση - κουβεντούλα / Παιχνίδια / Re: Γρίφοι
|
on: August 25, 2022, 17:32:03 pm
|
What? Γιατί να ψάχνεις τον ελάχιστο αριθμό βαρελιών; (τι σημαίνει αυτό βασικά) Ο ελάχιστος αριθμός είναι... 0 βαρέλια Η ερώτηση είναι "Πόσα γεμάτα βαρέλια μπορεί ν’ ανεβάσει στην κορυφή;" (και για να είμαστε τυπικοί, για 100 βαρέλια η λύση είναι floor(36.47)=36)Όπως και να 'χει, επειδή δεν το πόσταρες, η λύση μου σε Python είναι η εξής (μπορείτε να παίξετε αλλάζοντας το N): N = 100 #Total barrels n = N #Remaining barrels
print("Number of total barrels: " + str(N))
sum = 0 i = 1 while sum < 1: a = 1/(N+1-i) if sum+a>=1: break sum += a i += 1 refuels = i-1 print("Number of refuels that will be needed: " + str(refuels))
d = 0 #Percentage of covered distance for i in range(refuels, 0, -1): d += 1/n print("Refuel " + str(refuels-i+1) + " will happen at " + str(round(d*100, 2)) +"% of total distance") n -=1 #Dispose a barrel
print("Remaining barrels: " + str(n)) print("Remaining distance to be covered without refuels: " + str(round((1-d)*100, 2)) +"% of total distance") print("Remaining fuel per barrel: " + str(round(d*100, 2)) + "% of its total capacity") print("Total barrels that will arrive on top: " + str(round(n*d, 2)))
εδιτ: Για 2 βαρέλια: Στάση στο 50% της διαδρομής, γεμίζεις το ένα βαρέλι στο άλλο, φτάνεις στην κορυφή με 0.5 βαρέλια Για 3 βαρέλια: Στάση στο 33.3% της διαδρομής, γεμίζεις τα δύο βαρέλια με το άλλο, φτάνεις στο 83.333% (είναι εκεί όπου και τα δύο έχουν 50% βενζίνη) και γεμίζεις το ένα στο άλλο. Φτάνεις κορυφή με 0.833 βαρέλια. κτλ. Από 4+ βαρέλια αρχίζεις να φτάνεις στην κορυφή με πάνω από ένα individual βαρέλι
|
|
|
|