Paradosso NormalizeDouble - pagina 7

 
transcendreamer:

Per qualche motivo, le case nelle strade sono numerate da 1

piani in edifici (di solito) da 1

camere con 1

Perché i mandati sono numerati a partire da 0?

E ore, minuti e secondi sono numerati a partire da 0.

 
Contender:

E ore, minuti e secondi sono numerati a partire da 0.

e anche la velocità e altre cose

perché lo 0 sul tachimetro ha un significato fisico - velocità zero.

E lo zero è un'assurdità.

Nel linguaggio umano, è comune dire "primo", "secondo"...

qualcuno ha mai sentito dire "in-zero"?

...........

Bisogna ancora sottrarre uno da TotalOrders()

Non capisco questa testardaggine che dice che lo zero è più conveniente

proprio come è più conveniente sottrarre uno da ArraySize.

che senso ha la convenienza?

 

l'intero argomento assomiglia sempre più a una raccolta di battute sui programmatori

senza offesa

Ecco un esempio

-- un programmatore chiede a un collega -- "Mi puoi prestare mille dollari fino al giorno di paga?

-- Prendete il 1024 per pareggiare i conti.

 
transcendreamer:

in modo poco convincente

quali sono i vantaggi di contare da 0?

Per un uomo, non per una macchina

In qualche modo, non mi sono prefissato di convincere nessuno, la cosa principale è che sono convinto io stesso. Per questo bisogna conquistare tutti i tipi di algoritmi complessi con gli array.
 
Integer:
Non voglio convincere nessuno, l'importante è che io stesso ne sia convinto. Per questo, dovrò conquistare ogni sorta di algoritmi complicati con gli array.

Neanche io sto imponendo la mia opinione.

quando ho dovuto lavorare con le matrici, ho visto che era spesso conveniente spostare un elemento per il suo indice in un ciclo

ma ci sono stati molti controesempi in cui è intuitivamente più facile avere l'ultimo indice uguale alla dimensione

o questo esempio: for(int i=0; i<variabili+constanti; i++)

qui è l'enumerazione delle variabili e delle costanti; sarebbe intuitivamente più comodo se i=variabili+1 significasse il passaggio all'area delle costanti

cioè dal numero di variabili + 1 - significa che le variabili sono finite, le costanti sono iniziate - tutto è semplice

ma no - dobbiamo ricordarci di diminuire di uno (o fare una conversione separata del numero variabile all'indice dell'array)

quindi non è tutto così semplice.

 
transcendreamer:

Neanche io sto imponendo la mia opinione.

quando ho dovuto lavorare con le matrici, ho visto che era spesso conveniente spostare un elemento per il suo indice in un ciclo

ma ci sono stati molti controesempi in cui è intuitivamente più facile avere l'ultimo indice uguale alla dimensione

o questo esempio: for(int i=0; i<variabili+constanti; i++)

qui è l'enumerazione delle variabili e delle costanti; sarebbe intuitivamente più comodo se i=variabili+1 significasse il passaggio all'area delle costanti

cioè dal numero di variabili + 1 - significa che le variabili sono finite, le costanti sono iniziate - tutto è semplice

ma no - dobbiamo ricordarci di diminuire di uno (o fare una conversione separata del numero variabile all'indice dell'array)

quindi non è tutto così semplice.

Perché non c'è modo di uscire dalla matematica scolastica contando da uno.

Quando si conta da 0, non c'è bisogno di ricordare nessuna unità, tutto si somma miracolosamente da solo.

Tutto è semplice e chiaro:

for(int i=0; i<variabili; i++){}

for(int i=variabili; i<variabili+constanti; i++){}

o

for(int i=0; i<variabili+constanti; i++){if(i<variabili){}else{}}

Se improvvisamente fa un conto alla rovescia da 1, allora c'è qualcosa di sbagliato nell'algoritmo.

 
transcendreamer:

e anche la velocità e altre variabili

perché lo 0 sul tachimetro ha un significato fisico - velocità zero

e zero è un'assurdità.

Il linguaggio umano è dire "primo", "secondo"...

qualcuno ha mai sentito dire "in-zero"?

...........

Bisogna ancora sottrarre uno da TotalOrders()

Non capisco questa testardaggine che dice che lo zero è più conveniente

proprio come è più conveniente sottrarre uno da ArraySize.

Che senso ha la convenienza?

Chi ti obbliga a parlare di "zeri"? Ditelo come volete, i primi per esempio. Ma non dimenticare l'indicizzazione.

OrdersTotal() vi darà 10, se il numero di posizioni aperte == 10. Se si sottrae allora uno, allora si introduce un errore nei calcoli.

ArraySize() vi darà 10 se l'array ha 10 celle. Se si sottrae 1 dopo questo (non per il riferimento a una cella per il suo indice, ma per le manipolazioni con la dimensione dell'array), si commette un errore nei calcoli.

Ilnumero di ordini ti viene dato nel formato a cui sei abituato. Se ce ne sono 10, ne avrete 10. E quando vi riferite a un elemento della matrice per indice, non dovete dimenticare di partire da zero.

 

  for(int i=0; i<variables+constants; i++){if(i<variables){}else{}}

è qui che si perde il significato fisico della variabile i

Non capisco come tu possa dire seriamente questo.

è innaturale contare da zero.

Nell'antica Babilonia si contava per 12 ma gli intelligenti ebrei inventarono il sistema decimale perché ci sono 10 dita e tutti lo usano ancora.

i romani se ne uscirono con numeri terribili, ma gli arabi intelligenti rubarono i numeri normali agli indiani e la cosa prese piede.

ovunque la gente conta da 1 e solo una piccola percentuale vive in modo diverso.

per esempio int n=OrdiniTotali();

sarebbe abbastanza facile e intuitivo for(i=1; i<=n; i++) {OrderSelect(i,.......);} // se la numerazione fosse umana normale

e il significato fisico della variabile i è semplice e chiaro come la luce del sole: selezionare il primo ordine, selezionare il secondo, il terzo... fino ad arrivare all'ultimo

in qualsiasi momento, possiamo controllare la variabile i e dal suo valore dirci con quale ordine stiamo lavorando, senza spostamenti

La funzione void DisplayChart(int draw_bars), per esempio, disegna draw_bars delle ultime barre

per accedere alla prima barra nel buffer dell'indicatore, dovete sottrarre 1: draw_bars-1

è solo un'azione in più ogni volta ed è doloroso ricordarlo

 
Perché? Anche il soggetto di un film d'azione di Hollywood. Molto tempo fa, 300 anni fa, tutti i terrestri erano divisi in due classi: alcuni credevano che si dovesse contare da uno, mentre altri credevano che si dovesse partire da zero. E per 300 anni c'è stata una lotta feroce e implacabile tra loro... e poi si presenta (come un highlander immortale) e... spiega a tutti che il conto alla rovescia deve essere invertito (e un po' storto). Poi ci sono un sacco di cose e un lieto fine.
 
transcendreamer:

Per qualche motivo, le case nelle strade sono numerate da 1

piani in edifici (di solito) da 1

camere con 1

Perché numerano i mandati a 0?

Pavimenti negli edifici? È una questione di come. Quello che i russi chiamano "piano terra", i tedeschi lo chiamano "erdgeschoss", i tedeschi chiamano il primo piano "erste stok". A scuola mi ha causato uno shock culturale, che poi è passato - c'è un sacco di amico di Horatio...

Gli inglesi non hanno numeri 13 in alcuni posti, sia nelle case che negli appartamenti.

Gli ordini non hanno un ticker zero. E il fatto che l'account parte da zero, quindi è specificamente menzionato nella documentazione.

Se volete programmare, programmate secondo le regole dei programmatori.