Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006

    random con "importanza"

    scusate il titolo ma non è facile spiegarmi

    devo prendere un record a caso da un DB.il problema è che però tra tutti i record che ho alcuni devono essere pescati più frequentemente altri meno.
    in pratica ad ogni recordo ho dato un valore di "importanza" tra 1 e 5. quelli con importanza 1 devono avere meno possibilità di essere pescati di quelli con importanza 5.

    come posso fare??
    avevo pensato di gestire la cosa così.

    genero un numero casuale tra 1 e 150...chiamiamolo X

    codice:
    if x > 0 and x < 10 then record preso tra quelli di importanza 1
    
    if x > 10 and x < 30 then record preso tra quelli di importanza 2
    
    if x > 30 and x < 60 then record preso tra quelli di importanza 3
    
    if x > 60 and x < 100 then record preso tra quelli di importanza 4
    
    if x > 100 and x <= 150 then record preso tra quelli di importanza 5
    in pratica quelli di fascia 1 hanno 10 possibilità su 140 di essere pescati,quelli di fascia 2 20,quelli di fascia 3 30,quelli di fascia 4 40,quelli di fascia 5 50


    altre soluzioni??

  2. #2

  3. #3
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    è scorretto (o meglio troppo "dispendioso di risorse") fare così??

    codice:
    nrandom = Int((limitesup - limiteinf + 1) * Rnd + limiteinf)
    
    Select Case true
    	case nrandom < 11
    		importanza = 1
    	case nrandom > 10 and nrandom < 31
    		importanza = 2
    	case nrandom > 30 and nrandom < 61
    		importanza = 3
    	case nrandom > 60 and nrandom < 101
    		importanza = 4
    	case nrandom > 100
    		importanza = 5
    end select
    e poi vado a recuperare un record a caso tra tutti quelli con l'importanza stabilita casualmente.

  4. #4
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    gia che ci siamo....sempre in termini di risorse...va bene per pecare un record casuale fare così??

    codice:
    randomize
    nrandom = Int((rs.recordcount - 1 + 1) * Rnd + 1)
    rs.movefirst
    for i = 1 to nrandom - 1
    	rs.movenext
    next
    ci può stare???ho visto lo script di freeasp ma mi pare un po' "macchinoso"...in questo modo semplicemente dopo aver recuperato tutti i record scelgo su quale lavorare. il decimo?? mi sposto avanti di 9 allora.

  5. #5
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Non so bene come spiegare il concetto che ho in testa. Il codice che hai scritto, esclude 4 delle 5 categorie, e poi estrae un record a case tra quelli della categoria superstite. Praticamente la probabilità di uscire la attribuisci alle categorie, non direttamente ai singoli record. È quello che vuoi?

  6. #6
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da longline
    Non so bene come spiegare il concetto che ho in testa. Il codice che hai scritto, esclude 4 delle 5 categorie, e poi estrae un record a case tra quelli della categoria superstite. Praticamente la probabilità di uscire la attribuisci alle categorie, non direttamente ai singoli record. È quello che vuoi?
    eh?? che??

  7. #7
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    'random con "importanza"'... ecco, il tuo codice dice che l'importanza è una faccenda di categoria, non di singolo record.
    Quello che tu estrai è, innanzitutto, una categoria. Solo dopo estrai un record tra quelli superstiti (cioè quelli appartenenti alla categoria estratta) che hanno tutti la stessa probabilità di essere estratti.

  8. #8
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da longline
    'random con "importanza"'... ecco, il tuo codice dice che l'importanza è una faccenda di categoria, non di singolo record.
    Quello che tu estrai è, innanzitutto, una categoria. Solo dopo estrai un record tra quelli superstiti (cioè quelli appartenenti alla categoria estratta) che hanno tutti la stessa probabilità di essere estratti.
    beh è così....a me interessa che i record appartenenti alla categoria 1 abbiano meno possibilità di essere recuperati di quelli appartenenti alla categoria 5.
    poi tutti quelli della categoria X devono avere le stesse possibilità.
    dici che non è così?

  9. #9
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    È così. Facevo queste considerazioni per farti capire che se poi cambia il numero delle categorie, oppure cambiano le "importanze" devi rimettere mano al codice.

  10. #10
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da longline
    È così. Facevo queste considerazioni per farti capire che se poi cambia il numero delle categorie, oppure cambiano le "importanze" devi rimettere mano al codice.
    ah ok certo...ma non è questo il problema...non cambieranno mai

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.