Rand() o mt_rand() per ottenere risultati alternativi.. non uguali per 3 estrazioni.

otto9due

Utente Attivo
22 Feb 2014
529
21
28
MI spiego meglio, ho un array contenente dei valori.. da questo array devo estrarre 3 valori tutti doversi tra loro una volta al giorno..

Attualmente utilizzo questa soluzione, ma non mi convince molto perchè secondo me molte volte tende a estrarre duplicati. Vorrei evitare di dover salvare i risultati nel db e confrontarli se possibile.. :rolleyes:

PHP:
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Se aggiungessi uno shuffle() per Shakerare l'array :cool: , certo non eviterei i duplicati ma sarebbero più rari giusto??
Usando mt_rand() cambierebbe qualcosa?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
potresti fare così
PHP:
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$casuale=$input;//questo se vuoi mantenere l'array originale, altrimenti shuffi derettamente $input
shuffle($casuale);
echo $casuale[0] . "\n";
echo $casuale[1] . "\n";
?>
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
ciao
potresti fare così
PHP:
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$casuale=$input;//questo se vuoi mantenere l'array originale, altrimenti shuffi derettamente $input
shuffle($casuale);
echo $casuale[0] . "\n";
echo $casuale[1] . "\n";
?>

Ho fatto appunto questo test uhauhaa.. :cool:
Vi farò dopodomani quando otterrò i primi risultati e potrò controllarli e confrontarli..

Da alcuni test ch eho fatto dovrebbe variare un pochetto la situazione.. vedremo..
Per il momento grazie..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
tieni presente che con pochi dati la casualità non sempre appare.
ti faccio un esempio:
se hai 4 dati la probabilità di estrane uno a caso è 0,25 (25%) quindi è probabile che tu abbia molte ripetizioni consecutive
se i dati sono 1000 la probabilita scende allo 0,1% quindi è difficile avere ripetizioni consecutive
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
ciao
tieni presente che con pochi dati la casualità non sempre appare.
ti faccio un esempio:
se hai 4 dati la probabilità di estrane uno a caso è 0,25 (25%) quindi è probabile che tu abbia molte ripetizioni consecutive
se i dati sono 1000 la probabilita scende allo 0,1% quindi è difficile avere ripetizioni consecutive

Si in effetti hai ragione ma nel mio caso dovrebbe essere così la situazione..

ho 10 / 12 valori circa ed a me interessa che estragga 3 valori da questi con quel procedimento, di cui almeno uno ( e nella migliore delle ipotesi 3 ) dev'essere diverso da quello estratto il giorno prima e diverso l'uno con l'altro..

Diciamo che la migliore ipotesi sarebbe quella di creare un meccanismo che estragga i tre valori, li salvi in un db e poi il giorno dopo vada a confrontarli con quelli estratti il giorno prima e se diversi sceglie il valore e lo sostituisce nel db per il confronto del giorno dopo..

Magari estrarre i tre valori in una array dal db.. e poi vedere se il valore estrapolato esiste nell'array..

PHP:
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
...
}

No forse conviene fare il controllo uno per volta..
Per domani provo così, se i risultati in un paio di giorni non sono positivi, tento così..
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
se devi "ricordare" i valori estratti, non hai scampo, ti serve un db, forse si può fare anche con un file txt se non hai il db
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Sottoquery con group by per mese MySQL 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
V [Cerco] Socio e Sviluppatore per App PlacesFinder Offerte e Richieste di Lavoro e/o Collaborazione 0
Tuttoinformatico [Cerco] Cerco Staff per Blog Professionale dedicato alla Tecnologia! Offerte e Richieste di Lavoro e/o Collaborazione 0
M user agent per il download di api PHP 0
B Stringa sql per ricerca su più campi Database 1
Cosina Upload multiplo con invio allegati per email PHP 0
P Editor per la realizzazione di siti HTML e CSS 0
M Versione nativa per M1. Photoshop 1
A Aiuto per pagina php PHP 0
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 4
T [cerco] scrittore/scrittrice per articoli web Offerte e Richieste di Lavoro e/o Collaborazione 3
L Interfaccia grafica per gestire sql server .NET Framework 1
B javascript per problemi con pdf e Safari Javascript 0
R Plugin per Gestire videocorsi a pagamento WordPress 3
Y Vorrei selezionare un colore di sfondo per una pagina web Javascript 0
C media per riga MySQL 1
I Cerca: blogger IT per articoli di prova Offerte e Richieste di Lavoro e/o Collaborazione 0
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
D modificare questo codice per inserimento in text e non in tabella jQuery 1
U [Cerco ] incremento traffico per il mio sito Vendere e Acquistare pubblicita' online 0
E Monitor per Photoshop Photoshop 0
S Libreria PHP per creare file dwg o dxf PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
G un tool che trova nuovi clienti per web agency e web developer Offerte e Richieste di Lavoro e/o Collaborazione 2
A Mostrare dati database per pagine PHP 2
R cammino minimo per lista di picking: nodi "imposti" da visitare Programmazione 1
A [Vendo] Articoli per blog e siti ecommerce in ottica seo Offerte e Richieste di Lavoro e/o Collaborazione 0
N Mysql_result per PHP 7 PHP 2
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
E Cambiare lingua in Elements per Mac Mac e Software 2
S WEB APP PER AUTOMATIZZARE TASK INSTAGRAM Annunci servizi di Social Media Marketing 0
G Nuova Idea su come trovare clienti per sviluppo web Discussioni Varie 6
L Aiuto per programma web php/mySQL PHP 2
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
C Domini .It per estero Domini 0
A attributo "min" per input gestione date PHP 8
H Hosting per Wordpress 2020 Hosting 5
R [VENDO][DOMINI] .com per mercati diversi Compravendita siti e domini 0
D un pulsante salva per ogni ID jQuery 10
Tommy03 Select in ordine per numero di record MySQL 7
E Creazione URL per chat whatsapp WordPress 1
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
S Software windows10 per controllo contenuti web Windows e Software 6
S Scelta software/cms per creazione sito Webdesign e Grafica 6
F Gestionale per vendere su marketplace Hosting 0
S CERCO CREATORE APP PER E-COM IOS/ANDROID Sviluppo app per Android 1
M [VENDO] Automazione IG per pubblicità mirata! Vendere e Acquistare pubblicita' online 0

Discussioni simili