Πώς να βρεις τρεις άγνωστους αριθμούς με δύο ερωτήσεις 🔍🔢

Φανταστείτε ότι κάποιος σκέφτηκε τρεις φυσικούς αριθμούς x, y, z. Εσείς δεν ξέρετε τις τιμές τους, αλλά σας επιτρέπεται να κάνετε δύο ερωτήσεις.

Κάθε ερώτηση έχει τη μορφή:

S=ax+by+cz

όπου επιλέγετε εσείς τους συντελεστές aa, bb, cc, και το άτομο σας απαντάει με το αποτέλεσμα SS.

Στόχος: να βρείτε με βεβαιότητα τις τιμές των xx, yy και zz.


Έξυπνη στρατηγική

Αν γνωρίζετε ένα άνω όριο MM για τους αριθμούς (δηλαδή ξέρετε ότι 0x,y,zM0 \le x,y,z \le M), τότε αρκεί μόνο μία ερώτηση!

  1. Επιλέξτε:

    (a,b,c)=(1, B, B2)

    όπου B=M+1B = M + 1.

  2. Κάνετε την ερώτηση και παίρνετε:

    S=x+By+B2z
  3. Βρίσκετε τους αριθμούς απευθείας από το SS:

    x=SmodBy=SBmodBz=SB2

Η τιμή του SS λειτουργεί σαν αναπαράσταση σε βάση BB, άρα οι τρεις αριθμοί προκύπτουν αμέσως!


Παράδειγμα

Ας πούμε ότι x=7x=7, y=13y=13, z=25z=25, και ξέρουμε ότι κανένας αριθμός δεν ξεπερνά το M=500M=500.

  • Διαλέγουμε B=501B = 501.

  • Ρωτάμε:

    S=x+501y+5012z
  • Η απάντηση είναι:

    S=7+13501+255012
  • Από το SS, βρίσκουμε:

    x=Smod501,y=S501mod501,z=S5012

Αν δεν γνωρίζετε άνω όριο

Όταν δεν γνωρίζουμε άνω όριο, επιλέγουμε δύο διαφορετικούς αριθμούς BB και BB' που είναι αμοιβαία πρώτοι (δηλαδή gcd(B,B)=1\gcd(B,B')=1).
Μετά, εφαρμόζουμε το Κινέζικο Θεώρημα Υπολοίπων (CRT) για να βρούμε μοναδικά τις τιμές των x,y,zx,y,z.

📘
Έρχεται το πολλαπλό βιβλίο ΝΕΟ — βρες όλες τις επιλογές εδώ
PDF & Ψηφιακά Μαθησιακά Αντικείμενα — χωρίς εγγραφή • Portify
📚 437 βιβλία🎬 22.000+ Ψηφιακά Μαθησιακά Αντικείμενα
Δες τα βιβλία →

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου