Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: [algoritmo] logica

  1. #1

    [algoritmo] logica

    Ciao a tutti!
    devo creare un algoritmo che dati 2 interi di ingresso (compresi fra 1 e 10) li fonda insieme restituendo un intero (anche questo compreso tra 1 e 10)

    esempio
    f(a,b) -> c
    a,b,c sono interi compresi fra 1 e 10

    mettiamo per assurdo che l'algoritmo sia una semplice somma

    function algoritmo(a,b) {
    return a+b;
    }

    c = algoritmo(2,5);

    in questo caso la condizione è soddisfatta perchè 7 è compreso fra 1 e 10...
    ma se in ingresso dessimo (5,8) ?


    Secondo stadio di questo algoritmo... l'algoritmo inverso...
    dal risultato (7 nell'esempio di prima) devo ottenere 2 passando (7,5)...
    quindi

    function inverso(c,b) {
    return c-b;
    }

    ovviamente non è contemplabile questa soluzione per il motivo che potremmo andare sotto zero...

    io stavo pensando ad una conversione di base... ma anche questa soluzione non riesco ad inquadrarla bene...

    chi di voi mi sa aiutare?
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772

    Re: [algoritmo] logica

    Originariamente inviato da Mackey
    li fonda
    Che significato ha 'li fonda'?
    Per me fusione potrebbe anche essere il valore medio fra i due
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    I numeri devono essere compresi fra 1 e 10 oppure fra 0 e 10? Se dovessero essere compresi fra 0 e 10, allora come soluzione potrebbe andare bene il modulo.

    f(a, b) = (a + b) mod 10.

    infatti, f(7, 5) = (7 + 5) mod 10 = 2.

    Il modulo restituisce sempre valori compresi fra 0 ed il valore del modulo - 1. In questo caso, il modulo è 10, quindi restituisce sempre valori compresi fra 0 e 9 (che sono comunque compresi fra 0 e 10).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Originariamente inviato da Mackey
    Ciao a tutti!
    devo creare un algoritmo che dati 2 interi di ingresso (compresi fra 1 e 10) li fonda insieme restituendo un intero (anche questo compreso tra 1 e 10)
    questo va bene per interi compresi tra 0 e 9

    codice:
    function algoritmo(a,b)
    { 
      return (a+b) mod 10; 
    }
    in C
    codice:
    int algoritmo(int a, int b)
    { 
      return (a + b) % 10; 
    }
    Una curiosità, ti serve per costruire un algoritmo di crittografia?

  5. #5
    Originariamente inviato da internet
    Una curiosità, ti serve per costruire un algoritmo di crittografia? [/B]
    c'HAI AZZECCATO IN PIENO!

    comunque siete stati velocissimi a rispondere!!

    IL MODULO VA BENISSIMO... ma non è riconvertibile vero?

    LEGGETE LA SECONDA PARTE DEL POST... è possibile riconvertirlo?
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  6. #6
    codice:
    int codifica(int a, int b)
    { 
      return (a + b) % 10; 
    }
    
    
    int decodifica(int c, int b)
    { 
      return (10-b+c) % 10; 
    }
    
    c = codifica(a,b);
    a = decodifica(c,b);
    vado a mangiare che è ora

  7. #7
    SEI UN GRANDE!!
    GRAZIE... erano giorni che ci pensavo...
    :metallica
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  8. #8
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Ragazzi, a parte che se deve avere un valore fra 1 e 10 al modulo va aggiunto 1 (10%10 da 0)

    E cmq che senso ha una decodifica nella quale usi gia uno dei due valori che devi trovare?
    a = decodifica(c,b);

    Per trovare a mi serve c...
    c = codifica(a,b);
    Per trovare c (e quindi per trovare a) mi serve a.
    Se ho gia a cosa lo cerco a fare?

    p.s. inoltre a me la parola fusione fa pensare piu a qualcosa a livello binario (XOR)
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  9. #9
    E cmq che senso ha una decodifica nella quale usi gia uno dei due valori che devi trovare?
    perchè devo codificare una stringa... con una password...

    "stringa","password"

    se non si conosce la password non si può riconvertire la stringa... o perlomeno la si riconverte sbagliata...

    percui... si conosce la stringa codificata... e la password è inserita dall'utente... tutto qui...
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    ... post errato...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.