Supporre che ci si trovi in una stanza con gli interruttori N
e che ci sia una lampadina nella stanza successiva. La lampadina si accende solo quando alcuni interruttori specificati sono tutti accesi.L'algoritmo per trovare gli interruttori necessari per accendere un light blub
Set
switches
= l'insieme di tutti gli interruttori.|switches| = N
.required
= gli interruttori che devono essere attivati per far brillare la lampadina.
Gli interruttori non necessari non sono importanti.
È possibile controllare solo se la lampadina è accesa solo se si accede alla stanza successiva. È possibile attivare o disattivare alcuni interruttori, passare alla stanza successiva per controllare la lampadina e ripetere questa procedura. Chiamiamo questo TENTATIVO.
supponga c'è N
interruttori, nel peggiore dei casi, qual è il numero minimo di tentativi necessari per scoprire l'insieme di required
interruttori (utilizzando la strategia ottimizzata)?
Per esempio,
switches = { 1, 2, 3 }
required = { 1, 2 }
Proviamo con un approccio ingenuo:
- Accendere
{ 1, 2 }
, la luce i s incandescente. (Assicurarsi che l'interruttore 3 non sia necessario) - Accendere
{ 1, 3 }
, la luce non è accesa. (Verificare che sia necessario l'interruttore 2) - Accendere
{ 2, 3 }
, la luce non è accesa. (Assicurarsi che l'interruttore 1 sia necessario)
Quindi con 3 tentativi, possiamo assicurare required = { 1, 2 }
.
Qual è l'algoritmo ottimizzato per questo problema?
Lascia il worst(N)
il tentativo minimo considerando gli switch N
nel peggiore dei casi. Potresti scoprire worst(N)
AGGIORNAMENTO: Se pensi che worst(N) = N
, potresti fornire una prova formale?
è come una versione semplificata di tori e mucche. –
Nel peggiore dei casi sono tutti necessari e occorrono N tentativi per verificarlo. Destra? Poiché ogni tentativo ti dice che è necessario almeno un elemento di un gruppo di interruttori. Quindi non è possibile aumentare il numero che si conosce è richiesto da più di 1 alla volta. – genisage
Potrebbe semplicemente chiarire: sono gli interruttori non necessari * ignorati *, o spengono la lampadina? Per esempio. la lampadina si accende se accendiamo tutti gli interruttori compresi quelli non necessari? In tal caso, ciò potrebbe fornire le basi per un approccio di ricerca binaria. –