Gå til innhold

Anbefalte innlegg

Hei jeg har en innleverings oppgave, men har ikke skjønt helt hva de mener..Er det noen som gidder å hjelpe til?

 

 

 

 

Lag en klasse som dere kaller Kanal som har følgende funksjonalitet:

-Den skal ha en metode som leser blokker av (int n) databiter (fra en senderprosess)

- Den skal ha en metode som gir blokker av (int n) databiter (til en mottakerprosess)

 

- Utblokken skal være lik innblokken, bortsett fra at hver enkelt bit (som ved innputt har verdi

0 eller 1) ved utlesing kan være utvisket. Det vil si at dersom innputtverdi av biten er 0 er

utputtverdien 0 eller ?, der symbolet ? betyr "ukjent verdi". Dersom innputtverdi av biten er 1 er utputtverdien 1 eller ?. Denne utviskingen skjer for hver bit med en sannsynlighet ", og er uavhengig av hva som skjer med andre biter.

 

Dere kan definere feltvariable og/eller andre metoder som dere finner nødvendig.

Dersom minst en bit i en blokk er utvisket, er blokken å anse som upålitelig og dermed ubrukelig. Lag et klientprogram som bruker klassen Kanal, og som gj¿r f¿lgende:

 

- Leser inn fra bruker: Blokklengden n, en verdi for en heltallsvariabel ØnsketAntallFeil, og utviskingssannsynlighet ". Legg vekt på å sjekke at innleste verdier gir mening i forhold til problemet, det vil si at n og ØnsketAntallFeil er positive heltall og at 0.0 <E < 1.0.

 

-Oppretter et Kanal-objekt.

- Sender og mottar så mange tilfeldig genererte blokker at vi observerer ubrukelige blokker i et antall av ÂnsketAntallFeil.

- Skriver ut antall observerte utviskete bit, antall ubrukelige blokker og antall meldinger sendt.

Kontrollerer at utviskingssannsynligheten for hver bit er som forventet, og beregner og skriver ut relativ frekvens av ubrukelige blokker.

Utfør programmet for dataverdiene ("E, n) = (0.05,30), (0.01,100), (0.001,500), (0.0001,1000), og (0.00001,1000). I hvert tilfelle må ØnsketAntallFeil være minst 50. Hvilken effekt har det å øke eller redusere verdien av variabelen ØnsketAntallFeil?

Lenke til kommentar
Videoannonse
Annonse

Emnetittelen i denne tråden er ikke god nok, om ikke dette blir endret slik at det er lettere å forstå hva slags informasjon tråden omhandler vil denne bli stengt! En god emnetittel er en tittel som forklarer godt hva innholdet i posten din går ut på. En bruker bør kunne skaffe seg oversikt over hovedinnholdet i posten bare ut fra å lese tittelen. Vennligst forsøk å ha dette i tankene neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler.

 

Bruk p_edit.gif-knappen i første post for å endre emnetittelen.

 

(Dette innlegget vil bli fjernet ved endring av emnetittel. Vennligst ikke kommenter dette innlegget, men rapporter gjerne dette innlegget når tittelen er endret, så vil det bli fjernet.)

Lenke til kommentar

Ja, tips, ja...

 

Du bør ihvertfall begynne med å lage datastrømmen som et integer-array, hvor 0 representerer 0/false og 1 representerer 1/true.

 

Opprett paritetsbit ved å lage et nytt array som er en lenger enn det forrige:

int[] nyttArray = new int[(gammeltArray.length+1)]

 

Kopier alle bitene over samtidig som du regner ut antall enere:

for (int i = 0; i < gammeltArray.length; i++) {
nyttArray[i] = gammeltArray[i];
if (gammeltArray[i] ==1) antall1ere++;
}

 

Regn ut om det er partall enere og sett paritetsbit på bakgrunn av det:

if (antall1ere %2 == 1) nyttArray[(nyttArray.length-1)] = 1;

 

Deretter kjører du denne utviskingsgreien på hele arrayet ved å hente inn en nextDouble() fra Random-klassen (import java.util.Random):

 

Random tilfeldig = new Random();
for (int i = 0; i < nyttArray.length; i++) {
 if (sannsynlighet > tilfeldig.nextDouble()) {
   nyttArray[i] = 2;
 }
}

her representerer 2 et utvisket bit.

 

 

 

Litt semipseudokvasikode som mest sannsynlig inneholder en god del logiske og syntaktiske feil, men håper du får litt ut av det.

Lenke til kommentar
Gjest
Dette emnet er stengt for flere svar.
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...