/*Fibonacci
Si vuole implementare un algoritmo che, dato in input un numero intero positivo,
verifichi se esso è un numero di Fibonacci; nel caso affermativo, l’algoritmo calcola
anche l’indice del numero di Fibonacci. L’algoritmo deve essere organizzato come
una function. Scrivere un main che per 10000 volte genera a caso un numero intero
nell’insieme {0,1,2,..,20000}, chiama la function e visualizza il numero solo nel caso
sia un numero di Fibonacci (e visualizza l’indice); alla fine il main visualizza il
numero di volte in cui è stato generato un numero di Fibonacci, anche la percentuale
di successo, il numero di Fibonacci generato il maggior numero di volte (se sono più
di uno, devono essere visualizzati tutti), il numero di Fibonacci generato il minor
numero (positivo) di volte (se sono più di uno, devono essere visualizzati tutti).
Usare sempre la srand() per rendere automatica la scelta iniziale del seed della
sequenza di numeri casuali. Nella Relazione si deve riportare l’analisi della
complessità di tempo dell’algoritmo (operazione dominante: confronto)
*/
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void fibo(int array[]);
int appartiene(int chiave,int a[],int n);
void main()
{int n=24,array[25],k[25],h=0,i,app=0,chiave;
fibo(array);
for (i=0;i<=25;i++){ k[i]=0;}
srand ((unsigned int)time(0));
for(i=1;i<=10000;i++){
chiave = rand() % 20001;
app=appartiene(chiave,array,n);
h=app+h;
if (app!=25)
k[app]=k[app]+1;}//contattore si incrementa all'indice del fibonacci trovato
for (i=0;i<=25;i++)
printf(" %d %d \n",i,k[i]);
}
void fibo(int array[])
{
int i;
array[0]=0; array[1]=1;
for( i = 2 ; i <= 22 ; i = i + 1 )
array[i]=array[i-1]+array[i-2];
}
int appartiene(int chiave,int a[],int n)
{
int i;
i = 0;
while(chiave != a[i] && i < n-1 )
{ // printf(" \na %d ",a[i]);
i = i+1;}
if (chiave == a[i])
return i;
else
return 25;
}
questo è il programma che ho fatto ora ho una perplessità su come trovare il numero di fibonacci che è uscito piu volte(se ne sono piu di uno) e anche quello uscito meno volte,mi sapete dare na mano?
bastano pure solo idee ,io avevo pensato di controllare l'array creato di supporto dove ad ogni indice corrisponde l'indice della serie di fibonacci,incrementando la variabile ogni volkta che usciva il numero