Questo è Interviewstreet di puzzle:Hackerrank puzzle. Come molti bordi necessari per un grafo casuale di diventare collegato
Abbiamo un paese che contiene N città. Ogni giorno scegliamo 2 città in modo tale che non ci sia alcuna strada tra loro e costruisca una strada tra di esse. Scegliamo ogni coppia di città non adiacenti con uguale probabilità. Sia X il numero di giorni prima di ottenere un Paese connesso. Qual è il valore atteso di X? Emetti la parte intera della risposta.
Quello che realmente stanno chiedendo è quale numero di lati m è necessario (in media) per un grafico casuale G (n, m) per essere collegato.
Dopo aver scritto un programma che effettivamente eseguita l'esperimento, mi si avvicinò con questa 'soluzione' che passa 9/10 test
$f = fopen('php://stdin', 'r');
$n = intval(fgets($f));
echo round(1.25 * $n * log($n, 10));
Così si può essere risolto con una formula unica? Qual è il modo giusto di trovare la probabilità di connessione di un grafico casuale?
come dovrei interpretare questo: "scegliamo 2 città in modo che non ci siano strade tra di loro"?Diciamo che c'è una strada tra A-B e B-C, è possibile che l'algoritmo scelga una strada A-C ?? – Gevorg
Sì, se ci sono solo 3 città (A, B e C), l'unica coppia rimasta senza strada è A-C. Ma il paese sarà già collegato con solo 2 strade. – Evgeny
Questo è un caso speciale: se ci sono solo tre città, nessuna strada risulterà in un paese collegato, ma le due strade lo faranno. Per quattro città, la possibilità che la terza strada connetta il paese sia dell'80%, e altrimenti la quarta strada lo farà sempre, quindi il numero stimato di giorni è 3,2 (da troncare a 3). È una corretta interpretazione della domanda? – hvd