Професионална програма
Loading...
+ Нов въпрос
Tzigoriyn avatar Tzigoriyn 4 Точки

Bonus Scoring System Mid Exam 29.02.2020

Здравейте, вчера обещах, че ще попитам още нещо и въпросът е следният:

моля разгледайте линковете от решенията съответно 90/100 и 100/100 -

1.

https://judge.softuni.bg/Contests/Submissions/View/16459559

2.

https://judge.softuni.bg/Contests/Submissions/View/16459782

Моля да ми обясните съответно за този ред:

maxBonus = Math.round(maxStudentLectors / countOfLecturs * (5 + aditionalBonus));

каво точно в условието би трябвало да ме наведе на мисълта, че това трябва да е вътре в цикъла при наличието че това е абсолютно не нужно да се изчислява за всеки преди да се достигне студента с максимален брой посещения. Така или иначе това не се изчислява за следващите след него, но се пресмята за всички преди него, но не се ползва, т.е. се заема излишна памет абсолютно ненужно???

В първота решение за 90/100 това е напрвено в един ред извън цикъла и си пресмята само за студента с максимален бр. посещения.

ВЪПРОСА Е - КАКВИ ЕКСТРА СЕНСКИ ВЪЗМОЖНОСТИ ТРЯБВА ДА ИМА ЗА ДА ГО РАЗБЕРА, ОСВЕН АКО НЕ ГО НАПРАВЯ ПО СЛУЧАЙНОСТ. И АКО НЕ ЛЕЖЕМ НА СЛУЧАЙНОСТИТЕ ПАК СЕ ИЗВИНЯВАМ, НО КЪДЕ ТОВА Е ПОСОЧЕНО В УСЛОВИЕТО???

Тагове:
0
Fundamentals Module 30/06/2020 13:11:07
MartinBG avatar MartinBG 2679 Точки

Линковете, които сте дали не са достъпни за друг, освен Вас.

Ако има грешен резултат на тест #6, най-вероятно не покривате случая, когато въведените лекции са 0 и се получава делене на 0 при изчисленията.

0
Tzigoriyn avatar Tzigoriyn 4 Точки

100/100

https://pastebin.com/xa8g7Eva

90/100

https://pastebin.com/Tn87uZ1M

Не е това защото при проверка, и двете дават Infinity в първия принт.

Пак отиваме на скрити условия.

Плюс това кои би платил за НУЛА "0" лекции или би ги посещавал, това е абсурдно.

Когато говорим за изпит и има не до изказани условия, а времето е ограничено какво правим?

0
MartinBG avatar MartinBG 2679 Точки

@Tzigoriyn

Опитайте и двете решения с входни данни  [1, 0, 0, 0] и/или [0, 0, 0].

Първото (100/100) ще върне:

Max Bonus: 0.
The student has attended 0 lectures.

Второто (90/100) ще върне:

Max Bonus: NaN.
The student has attended 0 lectures. 

 

Проблемът е точно това, което предположих по-горе:

let maxBonus = Math.round(maxStudentLectors / countOfLecturs * (5 + aditionalBonus)); // връща NaN при countOfLecturs  = 0

 

Не се проявява в 100/100 решението, защото въобще не влиза в този if:

if (firstStudentLecturs > maxStudentLectors) // никога не влиза тук при вход като [(1, )0, 0, 0]

 

Ако трябва да сме точни, и двете решения ще върнат грешни резултати при вход [1, 0, 0, 1], но няма такъв тест в Judge, а и поведението в при такъв сценарий не е дефинирано в условието smiley

Max Bonus: Infinity.
The student has attended 1 lectures.

 

0
01/07/2020 03:02:30
Tzigoriyn avatar Tzigoriyn 4 Точки

Благодаря, за вниманието и отделеното време.

Извинявам се за притеснението което Ви причиних.

Логиката ми просто изключва такъв вход, действително това е абсурден вход. Кой би изчислявал нещо за несъществуващт курс, т.е. тогава когато има нула лекции, няма да има записани студенти и никой не би смятал такова нещо.

По скоро възможният описан сценарий е валиден, тогава когато има курс, но не са се записали студенти, но това би било валидно с проверка ако:

и би имало логика защото кой студент ще се запише за курс с бонус "0", въпреки че е възможно някой да сметне съдържанието на курса за въжно, но все пак е съществуващ курс за който има смисъл да се изчислява? Отново благодаря, много готин екип сте

1