Pagina 5 di 5 primaprima ... 3 4 5
Visualizzazione dei risultati da 41 a 42 su 42
  1. #41
    butto là un'idea, visto l'orario possibilissimo che sia una cazzata , ma tant'è.

    Il concetto chiave è quello di simulare virtualmente la numerosità che tu invece facevi nella realtà.

    Supponiamo che tu abbia nella tua tabella 3 record (con ID 1, 2, 3) con peso = 8 e 2 con un peso = 5 (ID 4 e 5). Al crescere del peso cresce la possibilità di sorteggio.

    Su una tabella terrai traccia di questa numerosità in base al peso.

    Nel momento dell'estrazione, leggerai i dati di questa tabella, facendo la sommatoria pesata.

    Quindi:
    3*8 = 24.
    2*5 = 10.
    Totale = 34.
    Estrai (con il rand() del PHP) un numero tra 1 e 34. Quel numero sarà in un certo senso il "puntatore" al record che ti interessa.
    Se il numero è tra 1 e 8, dovrai estrarre il primo record che ha peso = 8. Se è tra 9 e 16 il secondo, se tra 17 e 24 il terzo. Se è tra 25 e 29 estrai il primo che ha peso = 5, se tra 31 e 34 estrai il secondo.

    E così via.
    Il tutto può essere astratto con delle formule matematiche, senza bisogno di fare if() in cascata come ti ho scritto io ora per farti capire.

  2. #42
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    Si da elaborare ma come soluzione penso vada bene, bisogna solo aspettare qualche ora che il database venga ripopolato e poi domani si prosegue

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.