Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-12-2008, 13:02   #1
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
[python]Problemi con istogrammi

Sto leggendo il libro Pensare Da Informatico e non ho capito bene cosa bisogna fare nell'esercizio del capitolo 9 paragrafo 9.8.Ecco il link:http://www.python.it/doc/Howtothink/...-it/chap09.htm

L'esercizio è questo:
Quote:
Esercizio: scrivi una funzione chiamata Istogramma che prende una lista ed il numero di intervalli da considerare e ritorna l'istogramma della distribuzione dei valori per ciascun intervallo
Ringrazio anticipatamente chi mi aiuterà.
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 13:51   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Devi mostrare a video un istogramma dei dati. Hai già tutto quello che ti serve per generare i dati casuali, dividerli in intervalli e contarli. Devi solo disegnare a video il grafico.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 14:05   #3
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Devi mostrare a video un istogramma dei dati. Hai già tutto quello che ti serve per generare i dati casuali, dividerli in intervalli e contarli. Devi solo disegnare a video il grafico.
Penso di aver capito appeno finito a giocare a Follout ci provo


Però non riesco a quale parte di codice sostituisce questo:
Codice:
NumIntervalli = 8
Conteggio = [0] * NumIntervalli
for i in Lista:
  Indice = int(i * NumIntervalli)
  Conteggio[Indice] = Conteggio[Indice] + 1
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 15:15   #4
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
Il risultato è questo ma è impossibile:
Codice:
import random

def Crea_Lista(lung):
    lista=[0]*lung
    for i in range(8):
        lista[i]=random.random
    
    return lista

def NellIntervallo(Lista,LimiteSuperiore,LimiteInferiore):
    Conteggio=0
    for N in Lista:
        if LimiteInferiore<N<LimiteSuperiore:
            Conteggio=Conteggio+1
    return Conteggio

def Istogramma(Lista,inte):
    amp=1.0/inte
    for i in range(inte):
        LimiteInferiore=i*amp
        LimiteSuperiore=LimiteInferiore+amp
        print  LimiteInferiore,NellIntervallo(Lista,LimiteSuperiore,LimiteInferiore),LimiteSuperiore

Istogramma(Crea_Lista(8),8)
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 15:27   #5
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
ecco ho risolto:
Codice:
import random

def Crea_Lista(lung):
    lista=[0]*lung
    for i in range(8):
        lista[i]=random.random()
   
    return lista


def NellIntervallo(Lista,LimiteSuperiore,LimiteInferiore):
    Conteggio=0
    for N in Lista:
        if LimiteInferiore<N<LimiteSuperiore:
            Conteggio=Conteggio+1
    return Conteggio

def Istogramma(inte):
    amp=1.0/inte
    for i in range(inte):
     LimiteInferiore=i*amp
     LimiteSuperiore=LimiteInferiore+amp
     print LimiteInferiore,'\t',NellIntervallo(Crea_Lista(8),LimiteSuperiore,LimiteInferiore),'\t',LimiteSuperiore


Istogramma(8)
Ecco il risultato:
Codice:
0.0     2       0.125
0.125   2       0.25
0.25    0       0.375
0.375   2       0.5
0.5     1       0.625
0.625   3       0.75
0.75    1       0.875
0.875   0       1.0
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 16:01   #6
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
L'output non è che assomigli molto ad un istogramma Invece dei due valori dovresti stampare il valore centrale dell'intervallo e al posto del numero una colonna con altezza proporzionale al numero di elementi al suo interno.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 19:42   #7
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
L'output non è che assomigli molto ad un istogramma Invece dei due valori dovresti stampare il valore centrale dell'intervallo e al posto del numero una colonna con altezza proporzionale al numero di elementi al suo interno.
mmm...non capisco proprio cosa devo stampare.Il valore centrale dell'intervallo cos'è Conteggio???
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 19:48   #8
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
È semplicemente la media dei due estremi dell'intervallo.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 19:49   #9
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Poi ho notato solo ora che crei ogni volta una nuova lista di numeri casuali che è semplicemente assurdo.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 19:56   #10
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
La salvo in una variabile.In realtà l'avevo già fatto ma non avevo postato.Però il punto ora è come creare sto isogramma non è che puoi farmi un disegnino??
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 20:02   #11
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Da wikipedia:


Come suggerimento. Fai le barre orizzontali, e ripassa l'operatore * per le stringhe.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2008, 20:09   #12
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
Siamo come prima.Una cosa tipo questa:

7
6
5
4
3
2
1
intervallo1 intervallo 2 intervallo 3
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai

Ultima modifica di MasterDany : 20-12-2008 alle 20:33.
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 22-12-2008, 10:55   #13
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
FullSystem gentilmente mi ha fornito un codice:
Codice:
import random


def lista_casuale(l):
        lista = [0] * l  # crea una lista di "l" elementi piena di zeri
        for i in range(l): # qui ciclo per "l" volte coì posso scrivere su tutti gli elementi della lista appena creata
                lista[i] = random.random() # genero un numero casuale e lo metto nella lista
        return lista # ritorno la lista a chi mi a chiamato

def dividi_in_barre(lista, n):
        barre = [0] * n # crea una lista di "n" elementi che rappresentano le barre dell'istogramma
        for x in lista: # ciclo per tutti numeri casuali presenti nella lista
                barre[int(x * n)] += 1 # calcolo che indice ha la barra che contiene il numero casuale x e poi incremento di uno il valore della barra
        return barre # ritorna la lista delle barre

def istogramma(lista, n):
        barre = dividi_in_barre(lista, n) # divide la lista di numeri random in "n" barre dell'istogramma
        for barra in barre: # ciclo per ogni barra presente nell'istogramma
                print barra, "x" * barra # stampa il numero di elementi e poi una "x" ripetuta tante volte quanti sono i numeri di elementi presenti in quella barra


lista = lista_casuale(100)
istogramma(lista, 10)
Allora mi sono messo con carta e penna e forse ho capito come funziona:

La cosa che mi rimaneva più difficile era la funzione dividi_in barre che secondo me fa questo:
Moltiplicano il numero degli intervalli per gli elementi della lista otteniamo un numero compreso fra 0.0 e il numero degli intervalli.
Con int() lo arrotondiamo per difetto e questo numero corrisponde all'indice dove cade il valore.

Infine la funzione istogramma stampa l'inervallo nel quale cade un determinato valore e quante volte è presente un determinato valore.

Però mi è rimasto un dubbio perchè +1??
Codice:
barre[int(x * n)] += 1
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 22-12-2008, 10:58   #14
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
Ho capito
Codice:
barre[int(x * n)] += 1
serve a incrementare il contatore.
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2008, 14:13   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Purtroppo continuo ad avere poco tempo, ma vedo che la mia assenza, al contrario, porta buoni frutti.

E' sempre meglio sbattere la testa da soli nei problemi che si incontrano, anziché ricorrere all'aiuto di terzi.

Quindi il mio consiglio è di provare a perderci un po' di tempo, e soltanto dopo un po', se proprio non si riesce a cavare un ragno dal buco, chiedere qualche suggerimento (ma NON la soluzione).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2008, 17:48   #16
MasterDany
Senior Member
 
L'Avatar di MasterDany
 
Iscritto dal: Dec 2007
Messaggi: 505
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Purtroppo continuo ad avere poco tempo, ma vedo che la mia assenza, al contrario, porta buoni frutti.

E' sempre meglio sbattere la testa da soli nei problemi che si incontrano, anziché ricorrere all'aiuto di terzi.

Quindi il mio consiglio è di provare a perderci un po' di tempo, e soltanto dopo un po', se proprio non si riesce a cavare un ragno dal buco, chiedere qualche suggerimento (ma NON la soluzione).
Infatti si ti avevo inviato un pvt ma poi ragionando sono arrivato a quella conclusione
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG
Non ricordo niente ma non lo dimenticherò mai
MasterDany è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Bici elettrica da città in offerta: F.ll...
Va al minimo storico DJI Osmo Action 4, ...
ChatGPT Atlas è il browser peggio...
2 TV 4K QLED 43" e 55" a prezz...
Nintendo Switch 2: il bundle con Mario K...
Morto il papà di Call of Duty, Ap...
XPeng esagera: la nuova Mona M03 ha 12 o...
Le memorie costano troppo: addio alla ve...
9 auricolari in forte sconto su Amazon: ...
iPhone 17 Pro Max da 256 GB scende a 1.3...
Nuova ondata di sconti Braun: rasoi top,...
Come aggiornare il PC spendendo poco: su...
Il primo prototipo di motore rotativo ci...
OnePlus 15T, il top di gamma compatto &e...
6 smartphone sotto i 200€, tutti in offe...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v