Newsgroup: it.hobby.enigmi
Titolo: Successione di interi

Stefania sta scrivendo sul suo quaderno
uno dopo l'altro in ordine
i numeri interi a partire dall'1.
A un certo punto la mamma la chiama per una commissione.
Il papà prende il quaderno
fa qualche calcolo e nota
che la figlia ha scritto
ognuna delle 10 cifre in quantità diverse.
Quale numero minimo ha raggiunto Stefania
con questa proprietà?


.
.
.
.
.
.
.
.
.
Mi sembra troppo facile, l'ho fatto a mano quindi
son certo che sia migliorabile di tanto !
1000000000022333444455555666666777777788888888999999999
PS. Ad ogni modo si potrebbe anche pensare che una digit
non e' rappresentato (presenza 0 digit) per cui si puo'
toglire la fila di 9 in fondo ! Ma credo il numero sia
composto da 55 digit... Giusto ?
Massimo 

 Massimo
Non sono stato chiaro
Scrivendo
1 hai 1 "1" e 0 degli altri
2 hai 1 "1" e 1 "2" e 0 degli altri
...
9 hai 1"1..9" e 0 "0"
10 hai 2 "1" 1 di "2...9 e 0"
ecc.
Come vedi ci sono sempre almeno due cifre nella stessa quantitą
Per quale numero  n potrai dire che tutte e 10 le cifre scritte negli n
numeri sono in quantitą diversa?

 writes:

.
.
.
.
.
.
.
.
.
.
.
.
.
Se il mio computer non ha sbagliato i conti dovrebbe essere 24697, e
il conteggio delle cifre (da '0' a '9'):
9329, 20440, 15138, 10440, 10138, 9440, 9438, 9340, 9339, 9337
Mi sarei aspettato un numero molto più basso.
Mauro

 ecc.
.
.
.Infatti ho capito fischi per fiaschi... ;)
Massimo 

 wrote:

Confermo il risultato.
Ciao!!!  :o)
Livio

 > > con questa proprietà?
Se avesse scritto solo i numeri dispari, avrebbe fatto prima:
1485
120 567 175 324 168 274 125 273 123 268
Anche i pari:
1582
283 472 339 180 338 172 288 130 285 125
La tabellina del 3:
1374
121 283 160 152 125 126 127 123 122 124
La tabellina del 4:
732
57 41 86 40 83 39 82 23 58 14
La tabellina del 5:
13680
2100 1691 954 891 754 2122 751 734 733 732
La tabellina del 6:
378
17 24 35 21 19 6 20 7 18 5
La tabellina del 7:
2639
102 263 211 118 120 117 108 105 103 104
La tabellina del 8:
1744
81 136 96 42 97 41 95 35 83 29
La tabellina del 9:
13671
557 1089 681 645 570 571 568 560 559 561
Sequenza di Fibonacci:
12586269025
21 43 29 31 28 25 22 30 24 23

> Se il mio computer non ha sbagliato i conti
....e non li ha sbagliati
Sarebbe gradito il codice

>>> con questa proprietą?










Visto che ci sei prova a farlo nelle basi da 2 in poi


Io te lo posso dare in visual basic
Per le potenze, ho paura che divergano troppo in fretta.
Si potrebbe provare con i numeri primi.
Ciao
Livio
Dim Ac(10), J, L, i, x, h, k, TuttiDiversi As Boolean
For J = 1 To 100000
    Text1 = Str(J)
    DoEvents
    A$ = Trim(Str(J))
    L = Len(A$)
    For i = 1 To L
        B$ = Mid$(A$, i, 1)
        x = Val(B$)
        Ac(x) = Ac(x) + 1
    Next i
    TuttiDiversi = True
    For k = 1 To 9
        For h = 0 To k - 1
            If Ac(h) = Ac(k) Then
                TuttiDiversi = False
                Exit For
            End If
        Next h
        If Not TuttiDiversi Then Exit For
    Next k
    If TuttiDiversi Then
        Text2 = ""
        For k = 0 To 9
            Text2 = Text2 + Str(Ac(k))
        Next k
        Exit For
    End If
Next J

 Livio
Grazie!
Trovo interessante per questo
tipo di problemi fornire anche
solo uno pseudocodice

 solo uno pseudocodice
Il record per ora sembra essere quello dei numeri primi:
271
4 41 19 22 5 7 6 20 3 18
Quale sara' la sequenza piu' breve in assoluto ?
Ciao
Livio
Dim Ac(10), J, L, i, x, h, k, d, r, TuttiDiversi As Boolean, Primo As
Boolean
Ac(2) = 1                   'ASSUMO 1 NON PRIMO, 2 PRIMO
For J = 3 To 100000 Step 2
    Primo = True            'CERCO SE PRIMO
    For d = 3 To Sqr(J)
        r = J / d
        If r = Int(r) Then
            Primo = False
            Exit For
        End If
    Next d
    If Primo Then           'SE PRIMO:
        Text1 = Str(J)    'MONITOR
        DoEvents
        A$ = Trim(Str(J))   'AGGIORNO ACCUMULATORI
        L = Len(A$)
        For i = 1 To L
            B$ = Mid$(A$, i, 1)
            x = Val(B$)
            Ac(x) = Ac(x) + 1
        Next i
        TuttiDiversi = True 'VERIFICA DIVERSITA' ACCUMULATORI
        For k = 1 To 9
            For h = 0 To k - 1
                If Ac(h) = Ac(k) Then
                    TuttiDiversi = False
                    Exit For
                End If
            Next h
            If Not TuttiDiversi Then Exit For
        Next k
        If TuttiDiversi Then    'SE TUTTI DIVERSI STAMPO
            Text2 = ""
            For k = 0 To 9
                Text2 = Text2 + Str(Ac(k))
            Next k
            Exit For
        End If
    End If
Next J

 Sarebbe gradito il codice
from itertools import count
def all_different(seq):
    return len(set(seq)) == len(seq)
def digits(n, base):
    while n > 0:
        yield n % base
        n //= base
def search(base=10):
    freq = [0] * base
    for n in count(1):
        for d in digits(n, base):
            freq[d] += 1
        if all_different(freq):
            return n, freq
----------------------
risultatiin varie basi:
base  n_base    n_10
 2:       1        1
 3:      12        5
 4:      31       13
 5:     142       47
 6:     253      105
 7:    1364      536
 8:    2475     1341
 9:   13586     9231
10:   24697    24697
11:  1357a8   212594
12:  2468b9   592269
13: 13579ca  6100559
14: 2468adb 17464969
  Mauro

 Quale sara' la sequenza piu' breve in assoluto ?
.
.
Credo quella dei numeri binari... ;)
M 

 wrote in message news:35b75138-ea42-4870-8a2b-> Il

:o)
Stavo per risponderti, arrampicandomi sugli specchi, che, applicando
alla lettera il testo del problema, la sequenza binaria non avrebbe
avuto soluzione, perche' mai sarebbero comparse le dieci cifre in
quantita' diversa.
Per fortuna mia non l'ho fatto, perche' nel testo dieci e' scritto in
cifre e non in lettere, quindi il testo e' buono per qualsiasi base si
usi!
Ciao
Livio
"Le persona al mondo si dividono in 10 categorie: quelle che conoscono
i numeri binari e quelle che non li conoscono."

 i numeri binari e quelle che non li conoscono."
E quindi la tua risposta e' anche quella giusta per il quesito
iniziale di anbra1 !
Stefania vive in un mondo dove si usa la numerazione binaria e su quel
foglio il padre ha letto solo la cifra "1".
Si si vuole che la risposta esatta sia 24697 bisogna scrivere 10 in
lettere nel testo.
Ciao!!!  :o)
Livio

   Mauro
Questa sequenza è stata solo recentemente immessa
nel famoso OEIS

 Mauro
Si può dimostrare che n(1)>=n(2)>=n(3)....>=n(9)>=n(0)
dove n(*) è il numero di cifre *

 nel famoso OEIS
Vero, e quella delle tabelline non c'e'!
Dovrebbe essere:
24697,1582,1374,732,13680,378,2639,1744,13671,...
Se qualcuno avesse voglia di inserirla...
Ciao
Livio

 Se qualcuno avesse voglia di inserirla...
I primi 100 valori:
24697, 1582, 1374, 732, 13680, 378, 2639, 1744, 13671, 17523, 1548,
2743, 1582, 2565, 608, 3791, 2736, 4674, 7340, 13566, 1672, 3657,
1416, 14800, 1794, 3510, 2492, 4814, 3750, 5766, 1760, 1617, 2516,
2450, 1728, 3811, 1596, 6630, 3720, 4633, 1638, 15781, 1628, 15075,
1656, 5358, 1536, 5635, 3876, 3276, 18497, 3834, 24860, 1624, 6555,
6148, 4838, 3780, 15677, 2418, 25326, 5312, 4420, 4158, 3082, 2924,
16146, 15190, 5751, 5328, 16133, 3848, 4725, 5092, 5467, 6708, 17696,
17440, 5427, 14596, 5561, 5460, 24990, 2838, 14007, 5104, 24386,
47138, 13524, 6138, 8272, 18430, 8736, 16296, 7154, 23463, ...
Piuttosto caotici, no?
--------------------------------
Dim Ac(10), Ta, J, L, i, x, h, k, TuttiDiversi As Boolean
Text2 = ""
For Ta = 1 To 100
    For i = 0 To 9
        Ac(i) = 0
    Next i
    For J = Ta To 100000 Step Ta
        a$ = Trim(Str(J))
        L = Len(a$)
        For i = 1 To L
            B$ = Mid$(a$, i, 1)
            x = Val(B$)
            Ac(x) = Ac(x) + 1
        Next i
        TuttiDiversi = True
        For k = 1 To 9
            For h = 0 To k - 1
                If Ac(h) = Ac(k) Then
                    TuttiDiversi = False
                    Exit For
                End If
            Next h
            If Not TuttiDiversi Then Exit For
        Next k
        If TuttiDiversi Then
            Text2 = Text2 + a$ + ","
            Exit For
        End If
    Next J
Next Ta

 I primi 100 valori:
Scusate, c'era un errore. Ci sono numeri > 100.000. Questa dovrebbe
essere corretta:
24697, 1582, 1374, 732, 13680, 378, 2639, 1744, 13671, 135780, 17523,
1548, 2743, 1582, 2565, 608, 3791, 2736, 4674, 7340, 13566, 1672,
3657, 1416, 14800, 1794, 3510, 2492, 4814, 3750, 5766, 1760, 1617,
2516, 2450, 1728, 3811, 1596, 6630, 3720, 4633, 1638, 15781, 1628,
15075, 1656, 5358, 1536, 5635, 136800, 3876, 3276, 18497, 3834, 24860,
1624, 6555, 6148, 4838, 3780, 15677, 2418, 25326, 5312, 4420, 4158,
3082, 2924, 16146, 15190, 5751, 5328, 16133, 3848, 4725, 5092, 5467,
6708, 17696, 17440, 5427, 14596, 5561, 5460, 24990, 2838, 14007, 5104,
24386, 136710, 47138, 13524, 6138, 8272, 18430, 8736, 16296, 7154,
23463, 1357800, ...

 i numeri binari e quelle che non li conoscono."
.
.
.Questa e' bellissima e me la segno ! Grazie...
Auguri a tutti di Buon Natale... ;)
Massimo