Domanda

Io corro split test n su un sito web. Voglio assegnare un utente intero uniformemente distribuita id per una delle n secchi, e deterministicamente così lo stesso utente ottiene sempre lo stesso test.

A questo punto, posso solo prendere un indice nella lista degli split test dal modding l'id utente n. Che cosa devo fare di peso alcuni test?

Per esempio, secchio ° 1/21 è assegnato il 90% del tempo e le restanti 20 test vengono assegnati 0,5% del tempo.

Mi sento come se posso in qualche modo scalare la dimensione della mia lista e continuare a utilizzare la tecnica di mod per raggiungere questo obiettivo, ma avere potenzialmente enormi, elenchi provvisori in memoria sembra poco elegante.

È stato utile?

Soluzione

Se la maggior parte delle benne hanno dimensioni diverse, dove la dimensione è definita come la percentuale di ID, allora si dovrà rappresentare questo in memoria in qualche modo. In caso contrario, in quale altro modo hai intenzione di conoscere queste percentuali?

Una soluzione per l'uso è di avere diciamo 100 benne virtuali, ognuno dei quali rappresenta 1% degli ID. Quindi associare 90 delle benne virtuali al secchio # 1/21. Quindi è possibile eseguire un mod 100 e se cade nel pugno 90 benne virtuali, assegnare l'ID di secchio # 1. È possibile ottenere il numero ottimale di benne virtuali dividendo la percentuale di ciascun segmento dal GCD di tutte le percentuali, che nel tuo esempio è 0.5 (MCD (90, 0.5)).

Dal tuo esempio, non v'è solo un formato secchio distinta però. La soluzione migliore in realtà dipende da che tipo di accordi si potrebbe avere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top