Chyba v úloze č. 2

Nepochopili jste zadání či naopak vzorové řešení? Chcete se zeptat na některé jiné algoritmy?
Zamčeno
cajthamlmatej
Příspěvky: 8
Registrován: 26-02-2019 12:25
Škola: SSPŠ
Rok ukončení studia: 2020

Chyba v úloze č. 2

Příspěvek od cajthamlmatej »

Dobrý den,

v popisu úlohy č. 2 se nejspíše nachází chyba. Má-li se začínat testovací sada tím, že se získávají z funkce nextInt spotřeby jednotlivých budov, není možné aby funkce nextInt, která například u první ukázkové sady dostává x = 3, a = 2, b = 0 vrátila k první budově x = 1. (3 * 2 + 0) mod (10^9 + 7) se totiž rovná číslu 6. Zjistil jsem, že nejspíše vám u kalkulace spotřeby budov chybí mod N. Tedy, že spotřeba budovy se počítá: nextInt(x, a, b) mod N. Když se vypočítání takto upraví, spotřeby budov a celý zbytek úlohy sedí.

tung
Příspěvky: 35
Registrován: 02-11-2017 18:23
Škola: MFF UK
Rok ukončení studia: 2021
Kontaktovat uživatele:

Re: Chyba v úloze č. 2

Příspěvek od tung »

Ahoj,

mas pravdu, opravime to co nejdrive.

pocitac770
Příspěvky: 11
Registrován: 01-11-2017 17:11
Škola: FIT ČVUT
Rok ukončení studia: 2022

Re: Chyba v úloze č. 2

Příspěvek od pocitac770 »

Dále bych se přidal s tím, že je chyba podle mě v i popisku limitování K jakožto "pokud je K větší jak E-B+1, pak proveďte modulo E-B+1". To všechny délky a požadované hodnoty prodlužuje o 1, a kupříkladu na intervalu o délce 1 (E = B) (tzn. jediná hodnota kterou můžeme najít podle formátování v příkladu je 0.) to po nás může chtít 1. hodnotu.
A dále asi taktéž (stejně jako v minulém kole) bych tuto metodu nedefinoval "nextInt", ale "nextLong" protože se musí použít long, jinak může nastat přesah intu, hodnoty se dostanou do záporných čísel, a už ani modulo nepomůže.
Naposledy upravil(a) pocitac770 dne 13-03-2019 22:32, celkem upraveno 1 x.

tung
Příspěvky: 35
Registrován: 02-11-2017 18:23
Škola: MFF UK
Rok ukončení studia: 2021
Kontaktovat uživatele:

Re: Chyba v úloze č. 2

Příspěvek od tung »

Mohl bys mi ukazat dalsi priklad? Pokud B = E, tak jakekoliv cislo modulo 1 je 0 (doufam :D).

pocitac770
Příspěvky: 11
Registrován: 01-11-2017 17:11
Škola: FIT ČVUT
Rok ukončení studia: 2022

Re: Chyba v úloze č. 2

Příspěvek od pocitac770 »

to ano, ale v zadání je řečeno, pokud je to VĚTŠÍ, to znamená, že se modulo neprovede :D

tung
Příspěvky: 35
Registrován: 02-11-2017 18:23
Škola: MFF UK
Rok ukončení studia: 2021
Kontaktovat uživatele:

Re: Chyba v úloze č. 2

Příspěvek od tung »

Aha, uz to snad vidim, diky ;).

tung
Příspěvky: 35
Registrován: 02-11-2017 18:23
Škola: MFF UK
Rok ukončení studia: 2021
Kontaktovat uživatele:

Re: Chyba v úloze č. 2

Příspěvek od tung »

Zadani je opravene, diky za nahlaseni ;). Snad uz tam zadne chyby nejsou.

cajthamlmatej
Příspěvky: 8
Registrován: 26-02-2019 12:25
Škola: SSPŠ
Rok ukončení studia: 2020

Re: Chyba v úloze č. 2

Příspěvek od cajthamlmatej »

Ahoj,

zřejmě jsem našel další chybu - u sebe jsem jí opravil a zapomněl jsem jí dodat u prvního příspěvku. U hodnot proměnných B a E se také musí použít mod N, tedy, že B(E) = nextLong() mod N. Pokud se modulo nepoužije, hodnoty jdou do velmi velkých čísel. Toto v zadání však neuvádíte - jen je tu zmínka o modulo u spotřeb budov.

tung
Příspěvky: 35
Registrován: 02-11-2017 18:23
Škola: MFF UK
Rok ukončení studia: 2021
Kontaktovat uživatele:

Re: Chyba v úloze č. 2

Příspěvek od tung »

Ahoj,

diky za nahlaseni, opraveno, snad bude brzo na webu ;).

tung
Příspěvky: 35
Registrován: 02-11-2017 18:23
Škola: MFF UK
Rok ukončení studia: 2021
Kontaktovat uživatele:

Re: Chyba v úloze č. 2

Příspěvek od tung »

Tak uz je opravena i tato chyba, diky za nahlaseni ;).

Zamčeno