Задача 3: въпроси
-
Полиномите не са това, което бяха.
Публикувано преди повече от 4 години -
“приятен интерфейс към простите сметки с полоними” означава леко Рейлс (уеб) приложение или command line или просто набора от функционалности (или нещо друго)?
Останах с впечатлението, че тази задача ще е Рейлс, за това питам.
Публикувано преди повече от 4 години -
и аз задавам горния въпрос до колкото помня казахте, че домашното ще е една от най-добрите потготовки за контролното и ще е хубаво да наблегнем на него, а като гледам задачата не включва рейлс или актив рекърд
Публикувано преди повече от 4 години -
Домашното трябва да може да се вмъкне в текстовия прозорец с решенията и трябва да има поне един клас — Poly — както е според условието. Не става дума за Rails или ActiveRecord, разбира се.
Между другото, интересно ми е — как си представяте да се предава за проверка и проверява вашето Rails-приложение (с текущата инфраструктура на сайта) :)
Публикувано преди повече от 4 години -
няма да е сефте, да се даде задачата и 4-5 дена по-късно да се даде системата за качване на решението, а тестването на рейлс приложенията е ясно как ще става – трудно за проверяващите
Публикувано преди повече от 4 години -
Да, това че няма форма за събмитване на Рейлс проекти, не гарантира, че няма да има скоро например. Но да оставим тази тема. “7 Повдигане на степен цяло число. Операторът е **, резултатът — полином.” – така формулирано, се предполага, че функционалността трябва да работи с отрицателни цели степенни показатели. Това така ли е или условието трябва да се промени на “…степен цяло неотрицателно число”?
Публикувано преди повече от 4 години -
Неотрицателно е. Промених условието.
Публикувано преди повече от 4 години -
Здрасти няколко въпроса за дребни детайли.
Poly.new([]), Poly.new({})
Интересува ли ни какво връщат (логично е да е нулевият полином). И в тоя ред на мисли, Poly.new({0 => 0}).to_s, по условие трябва да връща "", а логичното е “0”.
Публикувано преди повече от 4 години -
Едно нещо не можах да открия как да го направя елегантно и се надявам някой да ми даде идейка… Та как елегантно да отпечатам Fixnum барабар със знака? т.е. 7 да стане +7 и т.н.
Публикувано преди повече от 4 години -
Имам и още един въпрос – не ми е много ясно какво се очаква да прави find. За Enumerable специално проверява последоваелно всички елементи и връща първия за който условието е изпълнено.Тук обаче някак не ми е много ясно какво значи да върне елемент за който е изпълнено условието. Имам общо взето две разумни предположения: едното е че трябва да върнем масив състоящ се от два елемента, първия от които е степента, а втория съответния коефициент; втория вариант е да се връща полином състоящ само от един едночлен.
Публикувано преди повече от 4 години -
Иво, не знам до колко е елегантно, но може да ползваш следната конструкция, за да печаташ знака на число: “%+ d %+ d” % [13, -13] -> “+13 -13”.(Няма интервал м/у + и d-то, но форумът разкарва + ако ги напиша така :))
Мисля, че в кавичките може да слагаш всичко, което printf от C/C++ разрешава.Публикувано преди повече от 4 години -
Имам въпрос относно map. За полинома x^1000000 + 1, на блока придружаващ map-a, трябва да yield-нем и 0-вите коефициенти, или само [1000000,1] и [0,1].
Публикувано преди повече от 4 години -
@Ивайло Странджев
Ако си отворен към маймунджалъци може да пробваш:
class Fixnum alias orig_to_s to_s def to_s ((self > 0) ? "+" : "") + self.orig_to_s end end
Публикувано преди повече от 4 години -
Какво трябва да връща map? Обект Poly или масив с масиви двойки степен, коефициент?
Какво трябва да връща sort_by? Масив с масиви двойки степен, коефициент ли?
Въобще, няма да се разсърди никой ако сложите по един тест за find, sort_by и map.
Малки грешки в условието: линка към sort_by е сбъркан и ~Poly.new [1, 0, 2] трябва да има скоби или около масива или около цялото без ~.Публикувано преди повече от 4 години -
Ако сме направили полином по число, трябва ли да правим и число по полином?
Публикувано преди повече от 4 години -
Въпросче относно include? Но си е принципен въпроса за 11.
p = Poly.new({1 => 2}) p.include? [0,0] # => true ? p.include? [2,0] # => true ?
Защото, на практика полинома 2x = 2x + 0 = 0*x^2 + 2x + 0, но какво трябва да върнем точно ? Това малко или много е свързано с предишния ми въпрос – Poly.new({0 => 0}), “0” ли е или "".
Публикувано преди повече от 4 години -
Производната според мен е логично да връща полином – за да може да се прави втора, трета производна. Но като гледам условието ми се струва, че връща .to_s от това, което ми се струва, че трябва да прави.
Та, производната полином ли връща или низ в четим за човек формат?Публикувано преди повече от 4 години -
Интересува ли ни какво връщат (логично е да е нулевият полином). И в тоя ред на мисли, Poly.new({0 => 0}).to_s, по условие трябва да връща "", а логичното е “0”.
Logic is for sissies.
Какво трябва да връща map? Обект Poly или масив с масиви двойки степен, коефициент?
Двойки. Важи са всички подобни методи.
Ако сме направили полином по число, трябва ли да правим и число по полином?
Не.
линка към sort_by е сбъркан
Опитай пак.
Та, производната полином ли връща или низ в четим за човек формат?
Полином.
p.include? [0,0] # => true ?
Няма значение.
Публикувано преди повече от 4 години -
Още не сте отговорили какво се очаква да връща find – моном или двойка от коефициент и стойност. Също така Ники ако може изясни се дали ако се чувстваме sissie-та можем да реализираме печата на нулев полином да е правилен, а не изисквания, без това да повлияе на резултата на задачата и отношението на ръководителите на курса.
Публикувано преди повече от 4 години -
@Борис:
Виж поста на Ники: “Двойки. Важи са всички подобни методи.”@Ники:
Неотрицателни? А какво трябва да връща полином на степен 0? 1 или Poly.new( 1 )? Разликата е малка, но потенциално съществена :)Публикувано преди повече от 4 години -
Какво трябва да връща това:
p Poly.new([0, 1, 2, 3, 4]).map { |x, y| [x+5, y+5] }
На мен ми връща:
[[6, 6], [7, 7], [8, 8], [9, 9]]Публикувано преди повече от 4 години -
И какво find приема две числа и връща двойка съставена от тях ако те се срещат в полинома инак – nil? Не ми се струва много функционално.
Публикувано преди повече от 4 години -
Poly.new([0, 1, 2, 3, 4]).find{ |x, y| x%2==0 && y%2 == 0 }
[2, 2]
не е точно така, но пак не ми се струва да има много приложение :)Публикувано преди повече от 4 години -
Да съжалявам. Явно съм доста глупав. Наистина би могло да има приложение. Моля игнорирайте горния ми пост. Единствената причина да не го изтрия е да покажа на всички на кое му се вика глупав пост.
Публикувано преди повече от 4 години -
Вече има един подобен въпрос, но все пак ще питам:
Poly.new([]).map #(което е същото като Poly.new([0_]).map)трябва да върне:
[] или [[0, 0]]Публикувано преди повече от 4 години -
А какво трябва да връща полином на степен 0? 1 или Poly.new( 1 )?
В условието пише.
Също така Ники ако може изясни се дали ако се чувстваме sissie-та можем да реализираме печата на нулев полином да е правилен, а не изисквания, без това да повлияе на резултата на задачата и отношението на ръководителите на курса.
Няма значение. Друг път ако се двоумиш — уповавай се на условието. Ако все пак решиш да си принципен, ще спечелиш симпатии, но може да загубиш точки.
Публикувано преди повече от 4 години -
Допълних условието, надявам се да отговаеря на въпросите ви:
sort_by
иmap
връщат списъци от двойки.find
връща двойка илиnil
.include?
трябва да приема, че едночлените с нулеви коефициенти са вътре, ноmap
,sort_by
иfind
не трябва да ги включват.Публикувано преди повече от 4 години -
poly.map { block }
връща списък от двойки [степен, върнатата_стойност_от_блока] или списък от върнатата_стойност_от_блока?
Във втория случай map ми се струва по-гъвкав.Публикувано преди повече от 4 години -
Ъъ, да де. Оправих го.
Публикувано преди повече от 4 години -
find в низходящ или във възходящ ред търси по степените? Или нещо друго?
Публикувано преди повече от 4 години -
find
в низходящ или във възходящ ред търси по степените? Или нещо друго?Няма значение.
Публикувано преди повече от 4 години
Нов отговор
Трябва да сте вътре за да отговаряте.