Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Du har lyst til å lage en Matlab-simulator av hviskeleken, med et valgfritt antall deltakere. Unøyaktigheten i ordformidlingen mellom deltakerne planlegger du å modellere ved å bytte plassen til to tilfeldige bokstaver i ordet. Du innser at siden alle deltakerne i spillet gjør den samme jobben, kan problemet løses rekursivt. Lag en rekursiv funksjon hviskelek(ord, n), som bruker rekursjon til å returnere resultatordet etter n runder  runder med hvisking.

Videoforklaring (9:45)

Widget Connector
urlhttps://www.youtube.com/watch?v=VomU3oquZuE

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlehviskelek.m
function retur = hviskelek(ord, n)
    if n == 0
        retur = ord;
        return;
    end
    pos1 = randi(length(ord));
    pos2 = randi(length(ord));
    ord([pos1, pos2]) = ord([pos2, pos1]);
    retur = hviskelek(ord, n-1);
end