Трета задача

  1. Трета задача е публикувана. Може да задавате въпроси в тази тема. Както обикновено, условието на задачата и примерния тест са и в GitHub.

    Не забравяйте:

    • работете самостоятелно;
    • предайте решение максимално рано, за да получите обратна връзка, ако сте омазали нещо твърде сериозно;
    • пуснете си примерните тестове, преди да предадете решение.

    По-сложна e от втора задача, започнете рано, не в неделя следобед.

    Срокът за предаване е до понеделник (26.10.2015), 17:30 ч.

  2. За проверка на прости числа сами ли трябва да си напишем методи или можем да ползваме клас Prime, require 'primе'и други pre-made опцийки? Също, за потвърждение FibonacciSequence обектите трябва да имат по default първи елемент 0?

  3. Георги, не е позволено да ползвате require в тази задача. Напишете си сами prime?. Не е нужно да е супер оптимален, достатъчно е да работи.

    Относно първия елемент на Фибоначи - не, едно трябва да си е. Просто може да го промените с параметър при нужда. Имаше подвеждащо изречение в условието, което махнах. Благодаря за въпроса.

  4. При функцията worthless не става ясно дали иде реч за това, сумата на числата в отрязъка ли трябва да е по-малка от n (или например най-голямото от числата да е по-малко от n), но от примера изглежда, че става дума точно за сумата. Това ли се има предвид наистина?

  5. @Добромир, всички класове трябва да миксват Enumerable, който ти дава to_a, така че по условие мисля трябва да му поверим този метод.

    @ДобриХора - малко екстенднат спек https://gist.github.com/valeksiev/55657b4886a9d9d58aa6

    Не ми се доверявайте сляпо, но вярвам ще е полезен. : ))

  6. за методите to_a , трябва ли да си го предефинираме, защото например за класа RationalSequence аз съм представил редицата като масив , от масиви от 2 елемента които съдържат числителя и знаменателя ?

  7. Май май имам проблем с дочитането на условията :D ..... Всички редици съм ги правила с масиви, сега прочетох в уточненията, че не трябва, но не разбрах как трябва да ги представяме, ако не с масив?

  8. @Милена, ами конкретно на RationalSequence вместо да се представят рационалните числа като масив от 2 елемента, т.е вместо например една втора [1, 2], се ползва Rational(1, 2). Вътре вече нищо не пречи да се стъпи с този Rational и върху масив. Не съм сигурен обаче дали това ти беше въпроса :D

  9. @Милена, до колкото аз разбирам условието не трябва в конструктора да си построим всички елементи и после в each метода само да ги yield-ваме.

    Практически пример защо - ако искаме да инициализираме редица с 10_000_000 елемента трябва да отделим процесорно време и памет за да построим този масив а в последствие може изобщо да не го използваме - поради някаква причина - if, който връща по рано, експешън, етц.

    Затова е добра идея генерирането на елементите да става в each метода и те да не се записват никъде от нас - не е нужно. Enumerable ще извика each метода при първото ни извикване на някой негов метод, например to_a и ще ги генерира. Така тежката работа по генериране на редицата ще се извърши едва в момента, когато имаме нужда от нея, а не при инициализация.

Трябва да сте влезли в системата, за да може да отговаряте на теми.