Vai al contenuto
PLC Forum


6/2(2+1)


JumpMan

Messaggi consigliati


E' un quesito che gira sui social, solitamente con centinaia di risposte, la maggioranza è per il 9, la minoranza per l'1.

Io di primo acchito ho detto 9, anche tutti i calcolatori scientifici online e i siti di matematica dicono 9, però la mia calcolatrice scientifica Casio mi dà 1 come risultato, mi dà 9 solo se inserisco anche il segno x :

6/2(2+1) = 1

6/2x(2+1) = 9

Sulla seconda espressione sono d'accordo, mentre sulla prima ho cercato di fare un ragionamento e sono giunto alla seguente conclusione, ma non so e non mi ricordo se sia dovuta a qualche regola che ignoro:

Supponiamo che 6/2(2+1) sia il risultato di un passaggio intermedio nella risoluzione di un polinomio:

6/2a dove a=(2+1)

 

Questo è l'unico senso logico che sono riuscito a dare al risultato che mi dà la calcolatrice Casio (non solo la mia a quanto pare ce ne sono molte online).

 

 

 

 

Link al commento
Condividi su altri siti

Per evitare ambiguità, non potendo scrivere la formula secondo una grafica corretta, si dovrebbe scrivere o:

(6/2) * (2+1) = 3*3 = 9

 

Oppure

6/(2*(2+1)) = 6/6 = 1

 

Così come è scritto fa parte dei divertimenti idioti che lasciano spazio a più interpretazioni

 

La grafia corretta potrebb essere:

 6

___ (2 + 1) = 9

 2

oppure

6

________ = 1

2 * (2 + 1)

Link al commento
Condividi su altri siti

Si Livio, ma quello che mi chiedo, al di là del divertimento idiota, è cosa ha portato i progettisti della Casio (ne ho 2 di scientifiche di questo marchio) a dare come risultato 1 se non si mette il segno "per" e 9 se lo si mette, se alla base di ciò vi fosse qualche regola matematica che ignoro. Per quello ho fatto l'esempio del polinomio.

 

dnmeza hai provato a togliere il "x" ? O non te lo fa togliere o ti dà sempre 9, e questo su tutte le calcolatrici software, su quelle fisiche dà risultati differenti a seconda della presenza/assenza del segno "per".

Link al commento
Condividi su altri siti

1 ora fa, JumpMan scrisse:

però la mia calcolatrice scientifica Casio mi dà 1 come risultato

la mia, sempre casio, se ometto il segno mi anulla l'operazione

la sharp rubata al fratello da invece 1

 

la matematica, un'opinione :whistling:

Link al commento
Condividi su altri siti

del_user_158461

Il bug ci sarà,  anche a me aveva fatto lo scherzo ma se controlli l'anteprima verifichi e correggi. Devo dirti che per un attimo avevo dei dubbi sul risultato ma comunque alla fine si dimostra che la matematica non ha opinioni.:)

Link al commento
Condividi su altri siti

Domenico Maschio

In algebra ricordavo quesata regola : per primo si devono fare le moltiplicazioni ,poi le divisioni ,poi le addizioni poi le sottrazioni . 

Se è cosi la prima operazione da fare è la moltiplicazione(quella sottintesa tra il 2 e la parentesi ,) tra il 2 e il contenuto della frazione : 3 , poi la divisione tra il 6 e il risultato della moltiplicazione : 6 . il risultato dovrebbe essere 1 

Link al commento
Condividi su altri siti

22 ore fa, JumpMan scrisse:

Si Livio, ma quello che mi chiedo, al di là del divertimento idiota, è cosa ha portato i progettisti della Casio (ne ho 2 di scientifiche di questo marchio) a dare come risultato 1 se non si mette il segno "per" e 9 se lo si mette, se alla base di ciò vi fosse qualche regola matematica che ignoro.

 

E' una questione di priorità algebrica, senza operatore "per" l'espressione viene interpretata come: 6/(2*(2+1)) = 6/6 = 1.In altri termini si considera denominatore della frazione, o divisore, tutto quello che segue l'operatore "/".

 

Se inserisci l/operatore "*" l'algebra della calcolatrice risolve correttamente come: 6/2 * (2+1) = 3*3 = 9; considera terminata la frazione nle momento che inserisci l'operatore "*".

Quesrti due risuktati sono formalmente corretti e rispondono perfettamente alle regole algebriche, regole che spesso noi umani, essendo intelligenti, non osserviamo scripolosamente. La macchina, essendo stupida, esegue pedissequamente secondo le regole.

L'espressione scitta come nel titolo "6/2(2+1)" se risolta secondo le regole algebriche (vado con i ricordi di porima media) delle espressioni deve dare come risultato 1, perchè si risolve prima la parentesi tonda, che la più interna, ed avremo 6/2(3), da cui risulta 6/6 = 1. Se ricordo bene, gli operatori somma e sottrazione staccan o, mentre quelli di divisione e moltiplicazione uniscono, come uniscono gli operatori di parentesi.

Link al commento
Condividi su altri siti

Domenico Maschio

Vedo che che io sono arrivato alle stesse  conclusioni di Livio pur avendo postato poco dopo di lui e non avendo letto il suo post .

L'espressione si puo anche trascrivere semplificando :

     6 

------------

2 * (2+1)

 

Link al commento
Condividi su altri siti

Dico la mia:

L'espressione scritta così: 6/2(2+1) è semplicemente errata perchè è omesso il segno di moltiplicazione prima della parentesi, quindi va scritta: 6/2*(2+1)

e, rispettando la parentesi, il risultato è 9.

Se provate a fare l'esercizio con un qualsiasi linguaggio di programmazione, se non mettete il "*" vi da errore.

Il perchè le Casio diano come risultato 1 mi è ignoto... la mia Texas Instruments da come risultato 9 anche senza il "per"

 

Link al commento
Condividi su altri siti

Riccardo Ottaviucci

se il risultato fosse diverso da 1 dovrei rintracciare tutti i miei professori di matematica,dalle elementari all'università e denunciarli per abuso di professione e restituire la laurea di ingegneria.

Prima si esegue il calcolo tra parentesi,lo si moltiplica per il fattore fuori parentesi (il segno x è pleonastico) poi si esegue la frazione (divisione). Buttate vie le calcolatrici che danno 9,

Le casio invece sanno l'aritmetica

Link al commento
Condividi su altri siti

Riccardo, per carità non denunciare nessuno :blink::lol: però:

Ho fatto delle semplici applicazioni console dell'operazione incriminata con:

 

CodeBlocks in C++      risultato = 9

Embarcadero C++ (compilatore Borland)     risultato = 9

Microsoft Visual Studio C++   risultato = 9

Microsoft Visual Studio C#    risultato = 9

Microsoft Visual Studio VB.Net  risultato = 9

 

Tutti questi prodotti risolvono la parentesi e poi eseguono le operazioni da sinistra a destra con la precedenza del * e / rispetto al + e -, come per altro penso facciano anche i PLC, ma non ho provato.

Questi software, a parte forse CodeBlocks che è più amatoriale, vengono utilizzati in moltissime applicazioni professionali.

Se vuoi ottenere 1 devi scrivere:

6 / (2 * (2 + 1))

come è decisamente più logico ed esente da interpretazioni.

 

Ma penso che sia solamente un differente modo di dare la precedenza alle operazioni: probabilmente nell'aritmetica classica (carta e penna) si usa il metodo dei tuoi professori, mentre la logica dei calcolatori è diversa e le parentesi servono ad eliminare ogni dubbio.

Vedi http://en.cppreference.com/w/cpp/language/operator_precedence

 

Ciao

 

Link al commento
Condividi su altri siti

Quote

Tutti questi prodotti risolvono la parentesi e poi eseguono le operazioni da sinistra a destra con la precedenza del * e / rispetto al + e -, come per altro penso facciano anche i PLC, ma non ho provato.

Seguono la regola classica dell'algebra, quella che si insegnava in prima media ai mie tempi.

Prima si risolvono le parentesi più interne; gli operatori "x" e "/" hanno al precedenza sugli operatori "+" e "-".

Quindi risolve la parentesi tonda, poi considera tutto quello che è dopo l'operatore "/" come denominatore della frazione

 

Fate una prova con la calcolatracite windows in modalità scientifica.

In serite 6, poi "/" seguito da "2"; quando andate ad inserire la "(" il 2 rimane nella riga in basso; proseguendo nell'inserimento degli altri termini, ignora il 2 inserito prima e da come risultato finale , come se l'operazione fosse 6/(2+1) = 2.

Mentre se si usa il segno "*" dopo la frazione il risultato è 9

Link al commento
Condividi su altri siti

Domenico Maschio

Quoto Riccardo al 100% , penso che l'errore sia dovuto alla differenza tra la calcolatrice normale e quella scientifica .

Probabilmente la normale compie le operazioni da sinistra a destra (prima la divisione poi la moltiplicazione )senza fare un "ragionamento"  . Invece la scientifica applica la regola algebrica : prima la moltiplicazione ,poi la divisione ,poi l'addizione ,poi la sottrazione 

Ciao

 

Link al commento
Condividi su altri siti

Ma la regola algebrica (PEMDAS o BODMAS le abbreviazioni in Inglese) stabilisce che le moltiplicazioni e le divisioni hanno la stessa priorità e se sono consecutive vanno eseguite nell'ordine da sinistra a destra, e così anche in tutti i linguaggi di programmazione elencati.

Nella Casio viene applicata una regola diversa solo se si toglie il segno di moltiplicazione, magari c'era qualche vecchia regola che poi è stata abolita.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...