Il numero più grande che c'è

Il forum di Base5, dove è possibile postare problemi, quiz, indovinelli, rompicapo, enigmi e quant'altro riguardi la matematica ricreativa e oltre.

Moderatori: Gianfranco, Bruno

Rispondi
Pasquale
Livello 12
Livello 12
Messaggi: 2854
Iscritto il: mer mag 25, 2005 2:14 am

Il numero più grande che c'è

Messaggio da Pasquale »

Quando paghiamo qualcosa con un assegno, la somma va scritta in cifre ed in lettere: orbene, esistono dei numeri, così trattati, la cui somma delle cifre componenti è uguale alla quantità di lettere con cui vengono scritti.
Premesso che siamo in Italia, esiste un numero che possa essere considerato il più grande fra tutti quelli con tali caratteristiche? Se si, qual è?

Intanto, l'amico Decimal Basic, a titolo di esempio, ha trovato il più grande di tali numeri, nell'intervallo 1-50

DIM a$(50)
DATA uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci
DATA undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,diciannove,venti
DATA ventuno,ventidue,ventitre,ventiquattro,venticinque,ventisei,ventisette,ventotto,ventinove,trenta
DATA trentuno,trentadue,trentatre,trentaquattro,trentacinque,trentasei,terntasette,trentotto,trentanove,quaranta
DATA quarantuno,quarantadue,quarantatre,quarantaquattro,quarantacinque,quarantasei,quarantasette,quarantotto,quarantanove,cinquanta

FOR m=1 TO 50
READ a$(m)
NEXT M

FOR m=1 TO 50
LET m$=STR$(m)
LET lu1=LEN(m$)
LET lu2=LEN(a$(m))
LET s=0
FOR n=1 TO lu1
LET s=s+VAL(mid$(m$,n,1))
NEXT N
IF s=lu2 THEN PRINT m;"= ";a$(m)
NEXT M
_________________

$\text { }$ciao Immagine ciao
E' la somma che fa il totale (Totò)

Quelo
Livello 7
Livello 7
Messaggi: 902
Iscritto il: ven giu 16, 2006 3:34 pm

Re: Il numero più grande che c'è

Messaggio da Quelo »

Per il momento il più alto che ho trovato è:

489899 quattrocentoottantanovemilaottocentonovantanove (47 lettere)

--- AGGIORNAMENTO ---

4999999 quattromilioninovecentonovantanovemilanovecentonovantanove (58 lettere)

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

Per il programma ne ho preso uno presente in rete e l'ho riadattato per Decimal Basic.
Sul sito dell'autore non ho trovato nessun esplicito divieto alla libera diffusione per cui ritengo di poterlo pubblicare citando la fonte:

Codice: Seleziona tutto

! Convertito per Decimal Basic dal programma originale di Roberto Mensa 
! https://sites.google.com/site/e90e50/vba/convertire-numero-da-cifre-a-lettere

DECLARE EXTERNAL FUNCTION Da_Numeri_a_lettere$
DECLARE EXTERNAL FUNCTION Da_1_a_99$
PUBLIC STRING s19$(19)
PUBLIC STRING s10$(8) 
PUBLIC STRING s1$(8) 
PUBLIC STRING s8$(8) 

DATA "uno","due","tre","quattro","cinque","sei","sette","otto","nove","dieci","undici","dodici","tredici","quattordici","quindici","sedici","diciassette","diciotto","diciannove"
MAT READ s19$
DATA "venti","trenta","quaranta","cinquanta","sessanta","settanta","ottanta","novanta"
MAT READ s10$
DATA "ventuno","trentuno","quarantuno","cinquantuno","sessantuno","settantuno","ottantuno","novantuno"
MAT READ s1$
DATA "ventotto","trentotto","quarantotto","cinquantotto","sessantotto","settantotto","ottantotto","novantotto"
MAT READ s8$

FOR Num = 1 TO 1000000
   LET Num$ = Da_Numeri_a_lettere$(Num)
   LET i$ = STR$(Num)
   LET k = 0
   FOR j = 1 TO LEN(i$)
      LET k = k + VAL(mid$(i$,j,1))
   NEXT J
   IF LEN(Num$) = k THEN 
      IF k > kmax THEN 
         LET kmax = k
         LET nmax = Num
         LET nmax$ = Num$
      END IF
   END IF
NEXT  NUM
PRINT kmax; nmax; nmax$ 
END

EXTERNAL FUNCTION Da_Numeri_a_lettere$ (Numero) 
IF Numero = 0 THEN EXIT FUNCTION
LET s$ = STR$(Numero)
SELECT CASE LEN(s$)
CASE 1, 2, 3
   LET Da_Numeri_a_lettere$ = Da_1_a_99$(Numero)
Case 4, 5, 6
   If Numero < 2000 Then
      LET Da_Numeri_a_lettere$ = "mille" & Da_1_a_99$(MOD(Numero,1000))
   ELSE
      LET Da_Numeri_a_lettere$ = Da_Numeri_a_lettere$(INT(Numero / 1000)) & "mila" & Da_1_a_99$(MOD(Numero,1000))
   END IF
CASE 7, 8, 9
   If Numero < 2000 * 10 ^ 3 Then
      LET Da_Numeri_a_lettere$ = "unmilione" & Da_Numeri_a_lettere$(Numero - 10 ^ 6)
   Else
      LET Da_Numeri_a_lettere$ = Da_Numeri_a_lettere$(INT(Numero / 10 ^ 6)) & "milioni" & Da_Numeri_a_lettere$(MOD(Numero, 10 ^ 6))
   End If
Case 9 To 15
   If Numero < 2000 * 10 ^ 6 Then
      LET Da_Numeri_a_lettere$ = "unmiliardo" & Da_Numeri_a_lettere$(Numero - 10 ^ 9)
   ELSE
      LET Da_Numeri_a_lettere$ = Da_Numeri_a_lettere$(INT(Numero / 10 ^ 9)) & "miliardi" & Da_Numeri_a_lettere$(Numero - (Int(Numero / 10 ^ 9) * 10 ^ 9))
   End If
Case 16 To 21
   If Numero < 2000 * 10 ^ 12 Then
      LET Da_Numeri_a_lettere$ = "unmilione di miliardi" & Da_Numeri_a_lettere$(Numero - 10 ^ 15)
   Else
      LET Da_Numeri_a_lettere$ =  Da_Numeri_a_lettere$(Int(Numero / 10 ^ 15)) & "milioni di miliardi" & Da_Numeri_a_lettere$(Numero - (Int(Numero / 10 ^ 15) * 10 ^ 15))
   End If
End Select
End Function

EXTERNAL FUNCTION Da_1_a_99$(Numero) 
IF Numero = 0 THEN EXIT FUNCTION
SELECT CASE Numero
CASE 1 TO 99
   IF Numero < 20 THEN
      LET Da_1_a_99$ = s19$(Numero)
   ELSE
      SELECT CASE MOD(Numero,10)
      CASE 1
         LET Da_1_a_99$ = s1$(INT(Numero / 10)-1)
      CASE 8
         LET Da_1_a_99$ = s8$(INT(Numero / 10)-1)
      CASE ELSE
         LET Da_1_a_99$ = s10$(INT(Numero / 10)-1) 
         IF MOD(Numero,10) > 0 THEN 
            LET Da_1_a_99$ = s10$(INT(Numero / 10)-1) & s19$(MOD(Numero,10))         
         END IF
      END SELECT
   END IF
CASE 100 TO 199
   LET Da_1_a_99$ = "cento" & Da_1_a_99$(MOD(Numero,100))
CASE ELSE
   LET Da_1_a_99$ = Da_1_a_99$(INT(Numero / 100)) & "cento" & Da_1_a_99$(MOD(Numero,100))
END SELECT
END FUNCTION
[Sergio] / $17$

Quelo
Livello 7
Livello 7
Messaggi: 902
Iscritto il: ven giu 16, 2006 3:34 pm

Re: Il numero più grande che c'è

Messaggio da Quelo »

Testati i numeri fino a 50 milioni, questa è la sequenza dei massimi:

3 3 tre
10 19 diciannove
13 67 sessantasette
16 178 centosettantotto
17 179 centosettantanove
18 288 duecentoottantotto
19 289 duecentoottantanove
21 588 cinquecentoottantotto
22 589 cinquecentoottantanove
23 1688 milleseicentoottantotto
24 1689 milleseicentoottantanove
25 1798 millesettecentonovantotto
26 1799 millesettecentonovantanove
27 2889 duemilaottocentoottantanove
28 3799 tremilasettecentonovantanove
30 4998 quattromilanovecentonovantotto
31 4999 quattromilanovecentonovantanove
32 15899 quindicimilaottocentonovantanove
34 17998 diciassettemilanovecentonovantotto
35 17999 diciassettemilanovecentonovantanove
36 47898 quarantasettemilaottocentonovantotto
37 47899 quarantasettemilaottocentonovantanove
38 57899 cinquantasettemilaottocentonovantanove
39 139899 centotrentanovemilaottocentonovantanove
40 148999 centoquarantottomilanovecentonovantanove
41 149999 centoquarantanovemilanovecentonovantanove
42 159999 centocinquantanovemilanovecentonovantanove
43 268999 duecentosessantottomilanovecentonovantanove
44 269999 duecentosessantanovemilanovecentonovantanove
45 488898 quattrocentoottantottomilaottocentonovantotto
46 488899 quattrocentoottantottomilaottocentonovantanove
47 489899 quattrocentoottantanovemilaottocentonovantanove
50 1698998 unmilioneseicentonovantottomilanovecentonovantotto
51 1698999 unmilioneseicentonovantottomilanovecentonovantanove
52 1699999 unmilioneseicentonovantanovemilanovecentonovantanove
53 1889999 unmilioneottocentoottantanovemilanovecentonovantanove
54 2889999 duemilioniottocentoottantanovemilanovecentonovantanove
55 3799999 tremilionisettecentonovantanovemilanovecentonovantanove
56 4998998 quattromilioninovecentonovantottomilanovecentonovantotto
57 4998999 quattromilioninovecentonovantottomilanovecentonovantanove
58 4999999 quattromilioninovecentonovantanovemilanovecentonovantanove
59 15899999 quindicimilioniottocentonovantanovemilanovecentonovantanove
60 17998998 diciassettemilioninovecentonovantottomilanovecentonovantotto
61 17998999 diciassettemilioninovecentonovantottomilanovecentonovantanove
62 17999999 diciassettemilioninovecentonovantanovemilanovecentonovantanove
63 47898999 quarantasettemilioniottocentonovantottomilanovecentonovantanove
64 47899999 quarantasettemilioniottocentonovantanovemilanovecentonovantanove
[Sergio] / $17$

Pasquale
Livello 12
Livello 12
Messaggi: 2854
Iscritto il: mer mag 25, 2005 2:14 am

Re: Il numero più grande che c'è

Messaggio da Pasquale »

Bene Quelo, con una fava hai preso due piccioni, rispondendo anche al topic "Algoritmi per tutte le tasche"...è proprio vero che più si va avanti, più su internet si trova tutto.
Debbo dire che 480 lo scriverei "quattrocentottanta" con una sola "o", ma è solo una questione di impostazione dell'algoritmo e della lingua cui si fa riferimento.
Comunque, da quello che abbiamo visto, appare difficile trovare "il numero più grande che c'è", per una questione di tempi di elaborazione, ma teoricamente deve esistere, se consideriamo il limite del linguaggio, che non riesce ad esprimere tutti i numeri.
_________________

$\text { }$ciao Immagine ciao
E' la somma che fa il totale (Totò)

Gianfranco
Supervisore del sito
Supervisore del sito
Messaggi: 1720
Iscritto il: ven mag 20, 2005 9:51 pm
Località: Sestri Levante
Contatta:

Re: Il numero più grande che c'è

Messaggio da Gianfranco »

17 - 98 000 000 - novantottomilioni
17 - 98 000 000 000 000 - novantottobilioni

17+64 - 98 000 047 899 999 - novantottobilioni + quarantasettemilioniottocentonovantanovemilanovecentonovantanove

A proposito, per i numeri da 1 000 000 000 000 (mille miliardi in avanti) usiamo la terminologia bilione, biliardo, trilione, triliardo etc oppure mille miliardi, un milione di miliardi, un miliardo di miliardi etc.???
Pace e bene a tutti.
Gianfranco

Pasquale
Livello 12
Livello 12
Messaggi: 2854
Iscritto il: mer mag 25, 2005 2:14 am

Re: Il numero più grande che c'è

Messaggio da Pasquale »

Io direi che il numero un nome deve averlo, se è stato inventato, altrimenti non si tratterebbe più di una vera trasformazione da cifre a lettere, ma si entrerebbe nel campo del calcolo.
Ad esempio, una volta finiti tutti i termini che si possono attribuire ai grandi numeri, si potrebbe pensare di dire "dieciallafantastimiliardesimaquarantasettemilioniottocentonovantanovemilanovecentonovantanoveperdieciallafantastimiliardesimaquarantasettemilioniottocentonovantanovemilanovecentonovantanove" con 189 lettere, ma direi che si finirebbe fuori tema.

Comunque, qualcuno ha chiamato con "googol" $10^{100}$ e con "googolplex" $10^{googol}$... non so se è stato dato un nome a $10^{googolplex}$, oppure a $googolplex^{googolplex}$

Comunque complimenti per i notevoli sforzi, perché credevo che non si arrivasse così in alto, per cui adesso la questione diventa una vera sfida, anche perché più si allunga il numero, più si allarga la grafica del topic. :mrgreen:

Potremmo aggiungere anche una nuova variante: il più grande numero con meno lettere; sarebbe migliore la soluzione con il maggiore rapporto fra numero e quantità di lettere con cui viene espresso.

ES: $10^{100} = ungoogol$ darebbe un rapporto $\frac{10^{100}}{8}$, se la somma delle cifre fosse uguale al numero delle lettere
_________________

$\text { }$ciao Immagine ciao
E' la somma che fa il totale (Totò)

fabtor
Livello 5
Livello 5
Messaggi: 226
Iscritto il: mar nov 17, 2009 3:59 pm

Re: Il numero più grande che c'è

Messaggio da fabtor »

Pasquale ha scritto: Potremmo aggiungere anche una nuova variante: il più grande numero con meno lettere; sarebbe migliore la soluzione con il maggiore rapporto fra numero e quantità di lettere con cui viene espresso.
Beh, in questo caso è facile: prendo un numero infinitamente grande a piacere e con un algoritmo che eleva il numero a se stesso un numero di volte pari a se se stesso a se stesso, sono certo di ottenere sicuramente un numero molto elevato se questo numero , diciamo x ne calcolo il limite per x ad infinito e poi chiamo il risultato: "Q" (perché mi piace e mi ricorda la semi-divinità di star trek -next generation) ... :)
Ah, se i portieri avessero sulla maglia: $|e^{-i\pi}|$...

Pongo $y = x^{2}$ quindi $y=\frac {x^{2}}{pongo}$
[tratto da un compito in classe di uno studente di prima superiore]

Il vero gnomone aureo: http://thumbs.dreamstime.com/z/gnomo-de ... 526933.jpg

Rispondi