Passa al tema normale
Spazio dedicato a problemi assegnati a gare matematiche o olimpiadi della matematica, o ancora a prove di ammissione a scuole di eccellenza.

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Re: Esercizi delle olimpiadi

01/03/2015, 11:09

Ho tentato anch'io un approccio come quello di veciorik; anzi, l'ho complicato supponendo che $F(n)$ sia l'arrotondamento di $nx+y$. Col suo stesso ragionamento ottengo
${(x=(sqrt5-1)/2=0.6180),(y=(3-sqrt5)/(3+sqrt5)=(7-3sqrt5)/2=0.1459):}$
e si ha il corretto $F(4198)=2595$.
La formula però non vale per $n=20$ perché si ha $nx+y=12.5066$ che si arrotonda a $13$; è invece $F(20)=12$.


Ho cercato di ricavare i valori di $F(n)$ con un foglio elettronico ma non so come ottenere la funzione di funzione e chiedo consigli. Ad esempio, se in B10 ho $F(10)=6$ e in B6 c'è $F(6)=4$, come posso ottenere automaticamente che $F(F(10))=4$ ?
Io uso OpenOffice.org Calc, ma penso che possa servirmi anche una risposta relativa ad altri fogli elettronici.

Re: Esercizi delle olimpiadi

01/03/2015, 13:45

Ah eccolo, si nota anche che $F(a_h+a_k) = a_{h-1}+a_{k-1}$ dove $a_h$ e $a_k$ sono numeri di fibonacci. Si dimostra bene? :-D

Re: Esercizi delle olimpiadi

01/03/2015, 13:57

@Giammaria

Non so se ho capito bene quello che ti serve ma se nella prima colonna hai $A1=1, A2=2, ...$, nella seconda hai $B1=F(A1), B2=F(A2), ...$, nella terza metti $C1=F(B1), C2=F(B2), ...$ forse qualcosa ottieni (se i valori non diventano troppo grandi ...)

Cordialmente, Alex
Ultima modifica di axpgn il 01/03/2015, 18:08, modificato 1 volta in totale.

Re: Esercizi delle olimpiadi

01/03/2015, 17:33

@ xXStephXx
Suppongo che la tua risposta sia la chiave per la soluzione, ma proprio non la capisco. Per favore, puoi spiegarti meglio?

@ axpgn
Il mio problema è che non ho una formula analitica per $F(n)$. Hai ragione per la colonna A e nel pensare che la colonna B riporti i valori della funzione; supponendo che sia già compilata fino a $B10$ e che in quest'ultima cella ci sia $6$, io voglio mettere in $B11$ il risultato di $A11-B6$. Se invece in $B10$ ci fosse $4$, in $B11$ metterei $A11-B4$.
La mia domanda è: come ottenerlo automaticamente, senza dovere ogni volta leggere il contenuto di una cella per indicare l'indirizzo di quella che mi serve?

Re: Esercizi delle olimpiadi

01/03/2015, 18:05

Non lo so se serve davvero, però mi era sembrata una cosa buffa. Con ogni numero di fibonacci si ottiene il numero di fibonacci precedente (da qui tutte quelle osservazioni sul rapporto che tende a $\phi$). Poi ho visto che questa cosa sembra valida pure con la somma di due numeri di fibonacci ma qui ho provato solo pochi casi quindi non saprei :D

Re: Esercizi delle olimpiadi

01/03/2015, 19:15

Riferendomi alla soluzione indicata nel mio penultimo intervento, ho provato a dare ad $y$ un valore un po' inferiore ed ho posto $y=0,1392$. Funziona bene con i valori per cui l'ho testato, cioè per $1<=n<=42$ e per il risultato finale; viene però a mancare una giustificazione teorica, anche poco rigorosa.

Re: Esercizi delle olimpiadi

02/03/2015, 16:25

@giammaria
per studiare la funzione ho fatto questa procedura Basic in LibreOffice Calc.
Non ho decifrato la relazione con i numeri di Fibonacci.
Serve un esperto di successioni ricorsive. Mi defilo.
Testo nascosto, fai click qui per vederlo
strumenti > macro > organizza macro > libreoffice basic > macro personali > standard > module1 > modifica

Sub sullasoglia
rem olimpiadi math 24. Sulla soglia della porta segreta montagna solitaria
rem http://online.disfida.it/2009_11/garaonline.pdf
rem calcolo i primi 4198 valori della successione ricorsiva F(n)
dim n as integer
dim m as integer
m=4198
dim f(m) as integer
f(1)=1
for n=2 to m
f(n)=n - f(f(n-1))
next n

rem metto i valori in colonna A del foglio; NB:cell(0,0)=A1

Sheet1 = ThisComponent.getSheets.getByIndex(0)
for n=1 to m
Sheet1.getCellByPosition(0,n-1).setValue(f(n))
next n

rem calcolo i primi 20 numeri di Fibonacci e metto i loro multipli nel foglio

dim nfib as integer
dim i as integer
dim j as integer
nfib=20
dim fibo(nfib) as integer
dim fibm(nfib,50) as long
dim fibp as long
dim fibc as long
fibo(1)=1
fibo(2)=1
for i=3 to nfib
fibo(i)=fibo(i-1)+fibo(i-2)
if i>3 then
Sheet1.getCellByPosition(i-3,0).setValue(fibo(i-1))
end if
for j=1 to 50
fibm(i,j)=j*fibo(i)
fibc=fibm(i,j)
fibp=fibm(i-1,j)
if i>3 and fibc < m then
if f(fibc)=fibp then
Sheet1.getCellByPosition(i-3,fibc-1).setValue(fibp)
end if
end if
next j
next i
End sub

Re: Esercizi delle olimpiadi

02/03/2015, 17:18

Grazie mille. Vedo però che hai dovuto ricorrere ad un linguaggio di programmazione; io cercavo una procedura applicabile sul foglio elettronico ma forse non c'è.

Re: Esercizi delle olimpiadi

02/03/2015, 23:00

Ho preferito scrivere un programma perché ero un informatico (ora in pensione), perché ci posso inserire altri trattamenti per esplorare la questione, per fare moltissimi calcoli con prestazioni decenti, perché posso inserire i dati nelle celle senza fare troppi "copia e incolla" (mi disturbano) e, soprattutto, perché non conoscevo la funzione INDIRETTO appena scoperta.

    A1=1
    A2=A1+1
    ...
    B1=1
    B2=A2-INDIRETTO("B"&INDIRETTO("B"&A1))
    ...

Re: Esercizi delle olimpiadi

03/03/2015, 17:07

Almeno per $n<=1000000$, il computer mi conferma che $f(n) = \floor{{n+1}/\phi}$.
Forse questa si riesce a dimostrare?
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.