Quizzino della domenica: Scambio in economia

Supponete che la vostra calcolatrice abbia due locazioni di memoria: M1 e M2, e che ciascuna di esse contenga un numero, rispettivamente a e b. Il vostro compito è trovare un modo per scambiare tra loro i due valori. Se ci fosse una terza locazione di memoria non ci vorrebbe nulla: si copia la prima variabile nella terza locazione, poi si copia la seconda variabile nella prima locazione e infine si copia nella seconda locazione il valore salvato. Ma come si fa senza questo aiutino? Supponete che i numeri siano al massimo di quattro cifre.
[M1 ⇔ M2]

(un aiutino lo trovate sul mio sito, alla pagina http://xmau.com/quizzini/p373.html; la risposta verrà postata lì il prossimo mercoledì. Problema classico.)

15 comments

      • c’è una soluzione che usa solo meni e più, ma io sono dell’idea che anche un informatico a un certo punto debba riconoscere la superiorità di carta e penna

    • Infatti questo è un quizzino informatico più che matematico. Quando ero giovane io, i numeri interi venivano spesso memorizzati in due byte, quindi si potevano salvare numeri da -32768 a 32767.

      • Ah, curioso! Non ricordo nessuna calcolatrice che avesse la memoria più corta del display! Per questo quando ho visto il limite di 4 cifre ho capito la soluzione, dato che i display con meno di 8 cifre sono improbabili.

        • non voglio sostituirmi allo illustre tenutario, ma c’è una soluzione che funziona con display lunghi quanto i numeri in campo

  1. Nel dominio dei numeri interi positivi farei così (suppongo M1>=M2)
    1. M1=M1-M2
    2. M2=M2+M1
    3. M1=M2-M1

    • Ah, ho letto solo dopo che i numeri sono al massimo di 4 cifre. Direi che allora la mia risposta valga anche in presenza di numeri negativi.

  2. a me la tua soluzione sembra sbagliata…al secondo step, in M2 non c’è A ma -A….per me dovrebbe essere così:
    M1 = M1 + M2
    M2 = M1 – M2
    M1 = M1 – M2

    No?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.