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.)

Ultimo aggiornamento: 2019-04-03 21:43

15 pensieri su “Quizzino della domenica: Scambio in economia

  1. m.fisk

    Si legge M1; lo si manda a memoria; si sostituisce M1 con M2; si scrive in M2 M1 mandato a memoria

    1. .mau. Autore articolo

      Beato Lei che ha tutta questa memoria naturale! Io non ce la farei più?

      1. mfisk

        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

    1. .mau. Autore articolo

      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.

      1. Bubbo Bubboni

        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.

        1. m fisk

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

  2. Fabio

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

    1. Fabio

      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.

  3. vincenzo

    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?

      1. .mau. Autore articolo

        La cosa buffa è che il contenuto delle variabili era quello giusto (anche perché era quello che avevo usato per poi trovare cosa scrivere). Passi la terza riga che era ovviamente un errore di sbaglio, ma la seconda proprio no…

I commenti sono chiusi.