Idős feladatokat tartalmazó excel file. UPDATE1: Helytelen 5. és 6. feladat.
Pdf a többi megoldással. UPDATE1: Elírások + helytelen 5. és 6. feladat.
Kérlek dobjatok egy mailt a szilike@gmail.com-ra vagy commenteljetek ide péntek 11-ig, ha valami nem stimmel, köszi!
UPDATE1:
Ez az excel file a szentírás. Ebben az 5-ös és 6-os feladatokban, a commentekben (elsősorban Borbély Attila által) felfedezett hibák ki vannak javítva.
Pontos hibajegyzék itt.
UPDATE2:
A harmadik feladatban 100 helyett lehet csak 99-szer kéne szorozni az 1000/1024-et.
Itt van, amiért ezt gondolom. Ebben már nem vagyok olyan biztos.

45 Comments
Egy apróság a 6. feladathoz.
Most egy bitről lesz szó, nem az egész üzenetről!
a) 0-1-3 útvonal esetén, ha 0-1 és 1-3 esetén is hibás a vétel, akkor helyes bitet kapunk.
b) 0-2-1-3 útvonal esetén hibásat kapunk, ha 0-2 és 2-1 és 1-3 átvitel hibás VAGY csak 0-2 VAGY csak 2-1 VAGY csak 1-3 hibás.
N hosszú üzenetek esetén kicsit bonyolultabb az egyenlet. Még nem számoltam ki, de ha megvan, és jó, akkor ide beírom.
Ha tévedek, szóljon valaki plz :)
Ja, törléses hiba esetén ez mind felejtős :)
3. feladatban az 1000/1024-es timer is 100-szor fut le? Ott már enablézva van a sending nem?
3. commentre válasz:
Igen, 100-szor, mert 60000-nek kellene eltelnie ahhoz, hogy tároljunk, de ezt a számlálót folyton újraindítja a beérkező üzenet eventje (mert az 1000-ként következik be).
Köszi.
Mégegy: 4. feladat pdf-ben 25. hatvány, excelben 20 bit. Direkt? Vagy rosszul nézem az összefüggéseket?
Szerintem elírás csak.
Két hibát szeretnék jelezni:
Az első:
Az 5. feladatban, amikor van 1 bit hibát javít a protokoll akkor szerintem nem az a képlet amit a pdf-ben írsz:
(1-p(i,j))^N + p(i,j)*(1-p(i,j))^N
hanem szerintem a helyes képlet:
(1-p(i,j))^N + N*p(i,j)*(1-p(i,j))^N
ugyanis N különböző helyen történhet a hiba.
A második:
A 6. feladat megoldása sem teljesen jó.
Ez ki is derült volna, ha az előbbi helyes képlet alapján számolsz,
ugyanis ekkor a 6. feladatodban írt megoldásoddal 1-nél nagyobb értéket kapsz eredményül a keresett valószínűségre, ami természetesen nem lehet jó.
A hatodik feladat megoldása szerintem úgy lehet helyes, hogy
P(0->3) = P(0->1) * P13
P(0->1) = P01 + (1-P01)*P02*P21
//jelölések:
P(i->j) := P(i-ből eljut j-be valamilyen úton)
Pij := P(i üzenetét veszi j)
Igy elvileg nem fog 1-nél nagyobbra kijönni az eredmény.
Jé, tényleg :) Köszi, észre sem vettem, hogy lemaradt…
Az 1. commentben leírt problémára viszont valami írtózat gusztustalan egyenlet jött ki, és csak az a) esetben csak 0.0000150115-tel növeli valószínűséget, szóval felejtős :)
Na itt is megkérdem:
Node saját magának kell, hogy üzenetet küldjön?
Hali!
A 3. feladatnál nem számoltad el?
101-szer számoltad a Timer1 periódusát, pedig szerintem csak 100szor kell. Vagy én tévedek?
Más nem nézte ezt a részt?
Egyébként kösz hogy feltetted, így tudom ellenőrizni a sajátomat.
András
Bocsi egy korábbi hozzászólást kérdőjeleznék meg!
P(0->1) = P01 + (1-P01)*P02*P21
Ennél sztem (1-P01)* nem kell beszorozni, mert akkor ennyi erővel be kéne tenni, hogy (1-P03)-t is, ami nem helyes.
Szerintem csak P02*P21.
Üdv
G
Húha! : D
Bárcsak ne adtam volna be ma este… Na, majd holnap megpróbálom kikotorni…
Még nem tudtam mindet hirtelen átgondolni, addig is az N=20 és N=25 különbség abból adódik, hogy Dávid barátomnak 20 nekem pedig 25 volt az N-ünk. ; )
Az 5. feladatban, amikor van 1 bit hibát javít a protokoll akkor szerintem nem az a képlet amit a pdf-ben írsz:
(1-p(i,j))^N + p(i,j)*(1-p(i,j))^N
hanem szerintem a helyes képlet:
(1-p(i,j))^N + N*p(i,j)*(1-p(i,j))^N
ugyanis N különböző helyen történhet a hiba.
Szerintem itt az (1-p(i,j))^(N-1) ediken van csak, mivel N-1 bit jó, és 1 romlik el.
9: CaptainG: igen, node magának is küld
13: mpeti: igazad van, és N-1-et is akartam írni. Elírtam, a fenébe..
SendMsg.send(TOS_BCAST_ADDR, sizeof(IntMsg), &data);
A BCAST az gondolom broadcast-ot jelent, én úgy tudom, hogy ekkor magának nem küldi. Honnan tudod biztosan, hogy elküldi magának?
az Timer2.fired() eventből kiderül, hogy a max[] és a val[] tömb is 4 soros, illetve a paraméterként kapott M mátrixnak is van értéke a főátlóban (mégha 0 is).
Figyi, a 3as feladatban nem úgy van, hogy lefut az init, az ugye 11000/1024 és utána send->receive, Timer2.start (60000/1024) és ezután Timer2.fired()?
Mert ez összesen 71000/1024 [s].
init aztán 100 üzenet küldés, 1000/1024-enként egy, aztán Timer2 timeoutol ez 60000/1024
De nem az első store hívásra kiváncsiak? Hanem mire minden adat a helyére kerül?
És miért ne lehetne a num[] meg a max[] x-edik eleme 0?
Egyébként a kódból nem látom, hol nullázzák ki őket, pedik szerintem ki kell.
A store csak egyszer hívódik meg, miután a Timer2 tüzel.
már biztos nem vagyok annyira benne, de hol számít, hogy küld-e magának?
a kódban ha nincs kinullázás, akkor sztem, mint minden más node-ra mér, és kijön a nulla a számításból.
de tényleg nem látom hirtelen, hogy ez hol zavar be.
Amúgy sehogy, csak 0 helyett 100 lesz asszem a num[1], amit kérdeznek, de ez tényleg szörszálhasogatás… Szerintem ezért levonni nem fognak se nekem, se neked. Na Üdv, most lépek php-zni :)
igazad van, a num[] várható értéknél… hát, sztem ha van mellette vlmi indoklás elfogadják. Oks, jó php-t! : )
Miert kell az num[] alsoegeszet venni? mert uint8_t?
nem, hanem mert ha 3,45 üzenet érkezett meg, akkor az igaziból 3 jól megérkezett üzenet
Figyelemfigyelem!
Én és tudós társam arra jutottunk, hogy a feltöltött anyagban a követkeő hibák leledzenek:
1) Borbély Attila commentje minden ízében igaz.
2) Az 5-ös feladatnál, mpeti 13-as commentje szerint, N-1 a kitevő az egy-bit-hibát javított tagnál.
Egy-két órán belül updatelem a postot, a javított képletekkel.
Ugyanakkor továbbra is figyelem a hozzászólásokat.
Minden eddigi közreműködőnek köszönet!
(1-p(i,j))^(N-1) + N*p(i,j)*(1-p(i,j))^N
helyett szerintem
(1-p(i,j))^(N-1) + N*p(i,j)*(1-p(i,j))
mivel a hiba csak 1 bitben fordulhat elő a sikeres átvitelhez
(2. tag N-es kitevője helyett semmilyen kitevő)
hm?
jajj semmi. már késő van. bocsánat
a 6.ik feladatnal a pdf-ben a masodik tag N-1…akkor mi a helyes?
(1-p(i,j))^N + N*p(i,j)*(1-p(i,j))^N
vagy
(1-p(i,j))^N + N*p(i,j)*(1-p(i,j))^N-1 ???
az utóbbi, de most nyomom fel a tuti excel filet.
Mára lehúztam a rolót. Jóéjt mindenkinek!
Helyesbítés:
>>Az 5. feladatban, amikor van 1 bit hibát javít a protokoll akkor >>szerintem nem az a képlet amit a pdf-ben írsz:
>>(1-p(i,j))^N + p(i,j)*(1-p(i,j))^N
>>hanem szerintem a helyes képlet:
>>(1-p(i,j))^N + N*p(i,j)*(1-p(i,j))^N
>>ugyanis N különböző helyen történhet a hiba.
Igen ezt elírtam. Szóval a helyes képlet:
(1-p(i,j))^N + N*p(i,j)*(1-p(i,j))^(N-1)
(Ahogy ezt észre is vettétek.)
Mindenesetre bocs azoktól akiket estleg megkevertem az elírással.
üdv:Bati
Hello!
A 3. feladatban szerintem is 1-el túlszámoltad.
Ugyan 100 szor fut le az 1000/1024-es timer, de
te 101-el számolsz, mert az inicializálásban lévőt
is hozzáadod még (Excel-ben B16).
Szerintem B15 + B16 + B16*99 + B24.
Szerintetek?
Domi
Cső!
A 3. feladatban sztem:
1. OK
2. 99×1000/1024
3. OK
pl: (serialNumber
pl: (serialNumber
pl: (serialNumber kisebb 3) -ra:
serialNumber=1;üzenek; várok 1000/1024 egyszer
serialNumber=2;üzenek;várok 1000/1024 kétszer
serialNumber=3;üzenek
és a timer 1 hiába számol tovább több üzenet nem lesz, így a timer 2 ekkor nullázodik utoljára.
összesen ez esetben tehát 2x kellett 1000/1024et várni.
Most értem haza, a tegnap leadott házimat kikotortam a dobozból, kijavítottam az 5-öst, 6-ost..
Már nem megyek vissza. ; D
A 100 - 101 kérdésen sokat dilemmáztam én is. El tudjátok mondani, hogy az első Timer1.fired()-nél mi történik pontosan a feltételnél?
Szerintem ez történik:
1) StdControl.start()-ban felhúzzuk a Timer1-et. 10000 múlva fired() event-et ad
2) Timer1.fired() - Kezdetben a sending_enabled false, tehát az első if-ágba kerülünk.
Itt egy újabb if vár. A feltételében újra felhúzzuk az órát, ezúttal 1000-enként fog fired() event-et adni.
Gondolom a feltéltel azért lesz igaz, mert a Timer1.start() úgy van implementálva, hogy ha sikeres a felhúzás, akkor SUCCESS-t ad vissza.
Eddig csak a kezdeti 10000 telt el.
3) Ezután annyi üzenetet küldünk, hogy 0-tól 99-ig inkrementálódjon a serialNumber. Ez 100 üzenet, ami 100 Timer1.fired() event eredménye. A Timer1-et ezután sem állítja le semmi, de a serialNumber-re adott feltétel miatt a fired() eventjében már nem küld üzenetet.
Eddig 10000+100*1000 telt el.
4) Egy vevő node-ban, minden üzenet érkezésekor újraindítja a Timer2-t, ami 60000-et vár aztán a fired()-ja, azt jelenti, hogy nem vár tovább üzenetekre, kiírja a végeredményt.
Ha az üzenettovábbítási idő 0, akkor a store-ig 10000+100*1000+60000 telt el.
Azaz 170000/1024=166.016 s.
Jól gondolkodtam?
ja csak az excelben más van…
ott az initbe belevetted az első üzenet elküldéséig megtett plusz 1000/1024et is, így ott már csak 99x kéne venni a 3) pontban az 1000/1024et. Az excelben így 166,99 jött ki. H melyiket adtad le végül azt nem tudom.
A rosszat.
Kb. miattad gondoltam végig rendesen.. ; )
bocs h ilyen későn szóltam…
ne viccelj, már így is feltűnően jó lett a házim..
és még 10:30-kor leírtam a javításod. Lehet másoknak segített.
twerny jiuosy yponhf igswbzv xsucknpg dgha mvwdn
9 Trackbacks/Pingbacks
Top casino sign up bonus…
Top casino sign up bonus…
New free casino bonus codes…
New free casino bonus codes…
No deposit free bonus casinos…
No deposit free bonus casinos…
No deposit casino cash codes…
No deposit casino cash codes…
Instant no deposit casino bonuses…
Instant no deposit casino bonuses…
Rtg casino deposit…
Rtg casino deposit…
taking amoxicillin while pregnant…
news…
brain effects of ritalin…
news…
valtrex medication…
news…
Post a Comment