Programma in C: LA RANA E LA SCALA

di il
4 risposte

Programma in C: LA RANA E LA SCALA

Non so come continuare questo problema, sono i miei primi esercizi di programmazione e non so come andare avanti. Vorrei non il listato ma la spiegazione con la quale capire il procedimento per risolvere non solo questo ma anche i problemi futuri.
Il testo dice:
Una rana deve salire in cima ad una scala a chiocciola con N gradini.
Partendo dal pavimento, ad ogni istante di tempo la rana può saltare
in alto di due gradini oppure scendere di un solo gradino in maniera
equiprobabile (50% di probabilità di andare verso l’alto e 50% di andare verso il basso).
Scrivete un programma che
1. descriva brevemente cosa fa ;
2. chieda all’utente di inserire attraverso la tastiera il numero N scegliendolo
all’interno dell’intervallo 100 <= N <= 1000 ;
3. nel caso in cui il numero N sia fuori dai limiti il programma dovr`a stampare
un messaggio d’errore e consentire all’utente di reimmettere il numero [2] ;
4. contenga una funzione passo_rana che implementi il singolo passo del moto
della rana utilizzando la funzione lrand48(). Con probabilità 0.5 la rana fa
un salto di due gradini in alto e con probabilità 0.5 un salto indietro di un
gradino. (Ovviamente la rana non può scendere più in basso del livello del
pavimento ossia del livello di partenza né può salire oltre l’ultimo gradino) ;
5. simuli il moto della rana e determini dopo quanto tempo la rana raggiunge
la sommità della scala ;
6. determini tutti i gradini della scala che la rana non ha mai toccato nel suo
percorso verso la sommità e li memorizzi in un array jumped.


Per i primi tre punti tutto OK, nessun problema.. non capisco poi come continuare. Come faccio a determinare una probabilità del 50%? E come posso simulare il moto della rana e il tempo che impiega a raggiungere la sommità della scala? Ed infine il punto 6?

Questo programma non prevede l'utilizzo di puntatori ecc., il mio livello di programmazione per ora è fermo agli array (anche multidimensionali accennati) e alle stringhe di caratteri.

4 Risposte

  • Re: Programma in C: LA RANA E LA SCALA

    Maddalena98 ha scritto:


    Come faccio a determinare una probabilità del 50%?
    Ad esempio generi un numero pseudocasuale nell'intervallo [A,B] e controlli se il risultato è maggiore di (B-A)/2.
  • Re: Programma in C: LA RANA E LA SCALA

    Concentrati solo sul punto 4: scrivi la funzione passo_rana. fai che ti ritorna 2 o -1 in maniera random. Come puoi fare questo con lrand48()? Controlla il suo valore di ritorno e dividi i possibili risultati in due....
  • Re: Programma in C: LA RANA E LA SCALA

    Lrand48() non la conosco. E' nello standard del C?
  • Re: Programma in C: LA RANA E LA SCALA

    E' presente nello standard POSIX

    E' meglio random()
Devi accedere o registrarti per scrivere nel forum
4 risposte