Operatore $mod$
Salve, volevo sapere se è corretto utilizzare $mod$ come operatore binario, ossia in espressioni del tipo $17 mod 5 = 2$, e nel caso qual è la sua precedenza rispetto alle altre operazioni.
Risposte
Io userei le parentesi, non c'è una convenzione universale.
Ok, grazie.
"utente__medio":
Salve, volevo sapere se è corretto utilizzare $mod$ come operatore binario, ossia in espressioni del tipo $17 mod 5 = 2$, e nel caso qual è la sua precedenza rispetto alle altre operazioni.
Ho già commentato nell'altro thread... se fossi un revisore di un articolo di teoria dei numeri lo segnerei come errore e chiederei di correggere. Oltretutto, in LaTeX si usa "\pmod" che però qui non mi pare supportato, quindi le parentesi vengono messe in automatico e il "mod" dovrebbe apparire a secondo membro della congruenza (non equivalenza), esattamente come scriveremmo il valore di una grandezza fisica seguito dalla relativa unità di misura.
Poi, IMHO, sei libero di definire qualcosa di diverso per poi usarlo, ma appunto "definendolo" preventivamente e non assumendolo di per sé.
"marcokrt":
in LaTeX si usa "\pmod" che però qui non mi pare supportato
Basta che scrivi
[tex]15 \equiv 7 \pmod 8[/tex]
Viene questo:
[tex]15 \equiv 7 \pmod 8[/tex]
"marcokrt":
se fossi un revisore di un articolo di teoria dei numeri lo segnerei come errore e chiederei di correggere.
Non essendo del settore non so valutare quanto ciò sia da considerare "pignoleria"... nel senso che magari non saranno state pubblicazioni ufficiali, ma in rete mi sono imbattuto più di una volta nell'utilizzo di $mod$ come operatore binario e non come relazione ternaria.
"utente__medio":
[quote="marcokrt"]se fossi un revisore di un articolo di teoria dei numeri lo segnerei come errore e chiederei di correggere.
Non essendo del settore non so valutare quanto ciò sia da considerare "pignoleria"... nel senso che magari non saranno state pubblicazioni ufficiali, ma in rete mi sono imbattuto più di una volta nell'utilizzo di $mod$ come operatore binario e non come relazione ternaria.[/quote]
Appunto.
In ogni caso, non mi pare un gran problema inserire qualche riga di definizione nell'intro dell'articolo e magari anche un esempio subito dopo. Se poi parliamo di computer science o altro, non so dirti...
Per illustrare il perché (da ipotetico revisore in NT) avrei scritto una nota, valutiamo se questi due casi possano essere considerati intercambiabili o meno (usando la sintassi suggerita da Martino, che ringrazio):
[tex]51 \equiv 1 \pmod 5[/tex] e
[tex]1 = 51 \mod 5[/tex].
Il primo caso per me utilizza la sintassi corretta, perché descrive la giusta classe di congruenza modulo $5$ a cui $51$ appartiene, mentre la seconda scrittura (i.e., [tex]1 = 51 \mod 5[/tex]) non differenzia un elemento dal relativo insieme di appartenenza, giacché qualsiasi elemento di $\{1,6,11,\ldots\}$ si comporterebbe come l'unità inserita a primo membro di [tex]1 = 51 \mod 5[/tex] (laddove se fossimo approssimativi dovremmo ammettere [tex]1 = 51 \mod 5 = 6[/tex] ).
Scusa, sarà sicuramente un mio limite, ma non sto capendo ciò che vuoi dire.
Io distinguo tra due $mod$:
- $mod$ inteso come relazione ternaria utilizzata nell'aritmetica modulare, dove $a -= b \ \ \ (mod c)$ ci fornisce l'informazione che $a$ è congruo a $b$ modulo $c$, essendo $a-b$ un multiplo di $c$;
- $mod$ inteso come operatore binario, dove $a mod b$ restituisce il resto della divisione intera tra $a$ e $b$ col quoziente arrotondato verso l'infinito negativo.
E nel post iniziale semplicemente chiedevo quali fossero le regole di precedenza per $mod$ operatore binario rispetto alle altre operazioni (addizione e sottrazione, moltiplicazione e divisione, ...). E dalla risposta di Martino mi sembra di capire che a scanso di equivoci, non essendoci alcuna convenzione al riguardo, bisogna nel caso sempre isolare i due operandi e l'operazione con delle parentesi.
Io distinguo tra due $mod$:
- $mod$ inteso come relazione ternaria utilizzata nell'aritmetica modulare, dove $a -= b \ \ \ (mod c)$ ci fornisce l'informazione che $a$ è congruo a $b$ modulo $c$, essendo $a-b$ un multiplo di $c$;
- $mod$ inteso come operatore binario, dove $a mod b$ restituisce il resto della divisione intera tra $a$ e $b$ col quoziente arrotondato verso l'infinito negativo.
E nel post iniziale semplicemente chiedevo quali fossero le regole di precedenza per $mod$ operatore binario rispetto alle altre operazioni (addizione e sottrazione, moltiplicazione e divisione, ...). E dalla risposta di Martino mi sembra di capire che a scanso di equivoci, non essendoci alcuna convenzione al riguardo, bisogna nel caso sempre isolare i due operandi e l'operazione con delle parentesi.
In matematica se chiamo con lo stesso nome due cose diverse, mi aspetto anche di ricevere critiche da parte dei revisori. Per dire, mi sono ritrovato a discutere persino sul fatto che abbia definito $V(a,b)$ una funzione di due variabili che per certi $a := a(b)$ ben specificati non dipende più da $b$ e sotto quel vincolo diventa dunque $V(a)$... ebbene, c'è stato chi non lo ha comunque recepito positivamente, preferendo che utilizzassi una "lettera" diversa per indicare il caso con la sola $a$ (ho dissentito, ma l'articolo non me l'hanno accettato).
Sul fatto che non esistano convenzioni sull'uso di "mod" ho dei dubbi, ma tu fai pure come credi... in teoria dei numeri, di solito, i ricercatori si distinguono dagli amatori anche per il fatto di definire puntualmente ciò che utilizzano nel resto dell'articolo e introducendo notazioni opportune che eliminino ambiguità formali.
Facciamo un esempio banale: se scrivo $a^{b^c}$ è chiaro a tutti quale sia l'ordine "standard" di operare, cioè per convenzione chiunque assume associatività dall'alto (e dunque assume $a^{b^c} = a^{(b^c)}$) in mancanza di altre specifiche dichiarate in modo esplicito (esempio la weak tetration di Munafo che adotta il criterio opposto).
Nel tuo caso, personalmente, sceglierei una delle seguenti opzioni:
1) Se reputi la tua convenzione implicita come quella di riferimento per i migliori articoli sull'argomento, ne citerei almeno uno e dichiarerei di adottare la medesima scrittura (e se non sono articoli peer-review o come minimo preprint su arXiv in math.NT eviterei proprio);
2) Se reputi la priorità considerata non comune tra le pubblicazioni di riferimento, la dichiarerei all'inizio dell'articolo stesso... stiamo qui a scrivere pagine di commenti quando basterebbero due righe nella Sezione 1 del testo e se poi capitasse che un revisore la reputasse superflua, non dovrai far altro che toglierla; a me capitò con la definizione di prodotto cartesiano sotto una specifica ulteriore, me lo dissero e la tolsi, ma sarebbe stato molto peggio se fosse accaduto il contrario.
Poi vedi tu, l'unico rischio a mio avviso è di apparire dilettantistico nell'esposizione formale qualora si palesassero criteri non uniformi adottati dagli autori di articoli nella medesima nicchia (specie se poi li citerai anche contemporaneamente nell'articolo). Just my two cents.
Sul fatto che non esistano convenzioni sull'uso di "mod" ho dei dubbi, ma tu fai pure come credi... in teoria dei numeri, di solito, i ricercatori si distinguono dagli amatori anche per il fatto di definire puntualmente ciò che utilizzano nel resto dell'articolo e introducendo notazioni opportune che eliminino ambiguità formali.
Facciamo un esempio banale: se scrivo $a^{b^c}$ è chiaro a tutti quale sia l'ordine "standard" di operare, cioè per convenzione chiunque assume associatività dall'alto (e dunque assume $a^{b^c} = a^{(b^c)}$) in mancanza di altre specifiche dichiarate in modo esplicito (esempio la weak tetration di Munafo che adotta il criterio opposto).
Nel tuo caso, personalmente, sceglierei una delle seguenti opzioni:
1) Se reputi la tua convenzione implicita come quella di riferimento per i migliori articoli sull'argomento, ne citerei almeno uno e dichiarerei di adottare la medesima scrittura (e se non sono articoli peer-review o come minimo preprint su arXiv in math.NT eviterei proprio);
2) Se reputi la priorità considerata non comune tra le pubblicazioni di riferimento, la dichiarerei all'inizio dell'articolo stesso... stiamo qui a scrivere pagine di commenti quando basterebbero due righe nella Sezione 1 del testo e se poi capitasse che un revisore la reputasse superflua, non dovrai far altro che toglierla; a me capitò con la definizione di prodotto cartesiano sotto una specifica ulteriore, me lo dissero e la tolsi, ma sarebbe stato molto peggio se fosse accaduto il contrario.
Poi vedi tu, l'unico rischio a mio avviso è di apparire dilettantistico nell'esposizione formale qualora si palesassero criteri non uniformi adottati dagli autori di articoli nella medesima nicchia (specie se poi li citerai anche contemporaneamente nell'articolo). Just my two cents.
utente_medio sta solo dicendo che in (alcuni?) linguaggi informatici quell'operatore fa quello che dice lui con quella sintassi.
Quindi non vi intendete ...
Quindi non vi intendete ...
"axpgn":
utente_medio sta solo dicendo che in (alcuni?) linguaggi informatici quell'operatore fa quello che dice lui con quella sintassi.
Quindi non vi intendete ...
In realtà avevo capito l'origine della questione, ma poi sono un po' partito per la tangente e ho esteso il discorso.
Ok, un computer che opera sotto certe regole (a partire da quelle decise da chi ha scritto il suo sistema operativo) restituirà l'output descritto a fronte dell'input immesso nel modo indicato dall'utente e se si tratta solo di programmare, andrà benissimo ignorare tutte le digressioni matematiche al contorno; se però l'obiettivo fosse quello di scrivere un paper di teoria dei numeri (come ho magari erroneamente supposto), cercherei di essere il più rigoroso possibile nelle dichiarazioni iniziali (e in fatto di definizioni esplicite credo si applichi bene il motto latino melius est abundare quam deficere).
Specificare da qualche parte che, nel presente articolo, quando scriverò "$a$ mod $b$" intenderò sempre il resto della divisione $\frac{a}{b}$ non mi pare una grande spreco di spazio, magari precisando che userò dunque il simbolo $=$ anziché $\equiv$ proprio perché sto compiendo un calcolo che mi restituisce per definizione un numero intero compreso tra $0$ e $b-1$ (personalmente, valuterei pure se inserire un esempio a corredo in base al tipo di pubblico a cui mi rivolgo). Magari poi sarei ridondante chiarendo il fatto che non inserirò le parentesi (del tipo $a (\mod b)$) per differenziare ulteriormente la forma dal più comune utilizzo in NT di cui ho già parlato post addietro.
"axpgn":
utente_medio sta solo dicendo che in (alcuni?) linguaggi informatici quell'operatore fa quello che dice lui con quella sintassi.
Quindi non vi intendete ...
Non so se i linguaggi informatici abbiano l'esclusiva sull'operatore "resto" ($mod$ o $rem$ che sia), ma in realtà non mi sto riferendo ad un ambito per forza informatico; che poi ciò possa essere considerato un approccio dilettantistico non è certo un problema, tanto non ho alcuna pretesa di pubblicazione scientifica, e comunque nel caso basterebbe apprendere le convenzioni ufficiali ed adattarsi.
L'importante, anche in ambito amatoriale, è quello di capirsi, e a tal proposito non vedo in quale modo sarebbe possibile confondersi tra il $mod$ utilizzato come relazione ternaria e il $mod$ utilizzato come operatore binario; poi è ovvio che come dice marcokrt una dichiarazione di intenti iniziale è sempre meglio, e a tal proposito penso che la definizione data nel mio precedente post
"utente__medio":
- $ mod $ inteso come operatore binario, dove $ a mod b $ restituisce il resto della divisione intera tra $ a $ e $ b $ col quoziente arrotondato verso l'infinito negativo.
possa essere ritenuta sufficiente.
Infine vale la pena precisare che l'unica volta che, in riferimento a questa questione, mi sono riferito all'ambito informatico, è in un post di un altro topic dove ho chiesto se $mod$ operatore binario avesse la stessa precedenza di moltiplicazione e divisione, un po' come avviene in C/C++ con l'operatore [inline]%[/inline] (ossia $rem$).
"marcokrt":
Sul fatto che non esistano convenzioni sull'uso di "mod" ho dei dubbi, ma tu fai pure come credi...
Mi riferivo ad eventuali convenzioni circa le regole di precedenza di $mod$ come operatore binario.
"marcokrt":
In matematica se chiamo con lo stesso nome due cose diverse, mi aspetto anche di ricevere critiche da parte dei revisori.
[...]
Poi vedi tu, l'unico rischio a mio avviso è di apparire dilettantistico nell'esposizione formale qualora si palesassero criteri non uniformi adottati dagli autori di articoli nella medesima nicchia (specie se poi li citerai anche contemporaneamente nell'articolo). Just my two cents.
Ho capito quello che intendi.
"utente__medio":
Infine vale la pena precisare che l'unica volta che, in riferimento a questa questione, mi sono riferito all'ambito informatico, è in un post di un altro topic dove ho chiesto se $mod$ operatore binario avesse la stessa precedenza di moltiplicazione e divisione, un po' come avviene in C/C++ con l'operatore [inline]%[/inline] (ossia $rem$).
Appunto.
Perdonate la risposta tardiva, ma finalmente posso dirvi che sulla OEIS mi hanno appena confermato che la notazione [tex]n - m \mod{c}[/tex] è stata da tempo validata sulla loro piattaforma, dunque la ritengo perfettamente adottabile (magari introducendo un esempio per fugare ogni dubbio nel lettore).

"marcokrt":
la notazione \( n - m \mod{c} \) è stata da tempo validata sulla loro piattaforma
Con $mod$ inteso come operatore binario e \( n - m \mod{c} \) che restituisce il resto della divisione intera tra $n-m$ e $c$ col quoziente arrotondato verso l'infinito negativo?