[HOMEWORK]Въпрос за задача Zero Subset
Когато правим проверки, повторението на подмножество означава ли, че ще трябва да проверяваме по следния шаблон:
(a+b)
(a+b+b);
(a+b+b+b)
(a+b+b+b+b)
Когато правим проверки, повторението на подмножество означава ли, че ще трябва да проверяваме по следния шаблон:
(a+b)
(a+b+b);
(a+b+b+b)
(a+b+b+b+b)
Трябва да проверяваш така:
(a + b)
(a + c)
(a + d)
...
(a + b + c)
(a + b + d)
(a + b + e)
(a + d + c)
...
Тоест, да провериш всяка уникална комбинация от a, b, c, d, e,
без да слагаш една променлива повече от един път в израз - тоест без "a + a + b
" и подоби.
здравейте :) .... това за мен е можеби най яката задача .... още академията на телерик се мъча да я разгадая
на кратко това е моето решение .... резултата не е форматиран правилно по условие нооооо съм съм зает с пиене
http://pastebin.com/mnxSfBsJ - моето решение
стигнах до него благодарение на едни фокуси .... разни такива ....
https://github.com/hmkcode/Java/blob/master/java-combinations/Combination.java
"преведох" си ги на c# и какво правя
реални незнам дали комбинирам или стават некви пермутаций .... така и не разбрах но аз математика учих до седми клас ....
аз му казвам че кобинирам всяко число със всяко ..... проверявам дали е равно на нула и отпечатвам ... правя го с комбинацийй за 2 числа за 3 числа и така ..... знам че идеята е да се прави с битове .... но без мен ... много се кефя че я реших без да преписвам решения а да приспособя други решения .... много красив проблем .... лично мен ми гризе съвеста от много гоодини ....
здравейте :) .... това за мен е можеби най яката задача .... още академията на телерик се мъча да я разгадая
на кратко това е моето решение .... резултата не е форматиран правилно по условие нооооо съм съм зает с пиене
http://pastebin.com/mnxSfBsJ - моето решение
стигнах до него благодарение на едни фокуси .... разни такива ....
https://github.com/hmkcode/Java/blob/master/java-combinations/Combination.java
"преведох" си ги на c# и какво правя
реални незнам дали комбинирам или стават некви пермутаций .... така и не разбрах но аз математика учих до седми клас ....
аз му казвам че кобинирам всяко число със всяко ..... проверявам дали е равно на нула и отпечатвам ... правя го с комбинацийй за 2 числа за 3 числа и така ..... знам че идеята е да се прави с битове .... но без мен ... много се кефя че я реших без да преписвам решения а да приспособя други решения .... много красив проблем .... лично мен ми гризе съвеста от много гоодини ....
Здравейте,
Комбинациите са лесни за изчисление: https://www.math10.com/bg/algebra/kombinatorika.html . Смятам, че е добре да се разбере как се пресмятат. А тяхното „обличане” в код е шаблонно.
След като гледах различни решения на задачата, реших да предложа на внимание моето. Това решение не включва използването на побитови операции. То засяга въпроса за комбинаториката и превръщането и в код чрез използването на вложени цикли. Мисля, че решението е много достъпно за разбиране и ще бъде полезно за всички, които се интересуват от посочения по-горе въпрос. Вижте : http://pastebin.com/XpZSCNV4
В нашата задача имаме вход от 5 числа. Ще трябва да реализираме:
1. Всички комбинации от 5 елемента 1 клас;
2. Всички комбинации от 5 елемента 2 клас;
3. Всички комбинации от 5 елемента 3 клас;
4. Всички комбинации от 5 елемента 4 клас;
5. И остава една комбинация от 5 елемента 5 клас.
Броят на тези комбинации се пресмят с проста математическа формула, а вложените цикли в кода ги реализират. Филтрираме, имайки впредвид условието sum = 0 и получаваме желаните отговори.
В условието пише да се проверят всички 32 подмножества от числата, аз обаче откривам само 31. Няма логика нулевото множество да се брои, а не мисля че изпускам нещо:
A+b+c+d+e
A+b+c+d
A+b+c+e
A+b+d+e
A+c+d+e
b+c+d+e
A+b+c
A+b+ d
A +c+d
b+c+d
A+b +e
A +c+e
b+c+e
A +d+e
b +d+e
c+d+e
A+b
A+c
A+d
A+e
b+c
b+d
b+e
c+d
c+e
d+e
a
b
c
d
e
В условието пише да се проверят всички 32 подмножества от числата, аз обаче откривам само 31. Няма логика нулевото множество да се брои, а не мисля че изпускам нещо:
A+b+c+d+e 2. A+b+c+d 3 A+b+c+e 4. A+b+d+e 5 A+c+d+e 6 b+c+d+e 7 A+b+c 8 A+b+ d 9 A +c+d 10 b+c+d 11 A+b +e 12 A +c+e 13 b+c+e 14 A +d+e 15 b +d+e 16 c+d+e 17 A+b 18 A+c 19 A+d 20 A+e 21 b+c 22 b+d 23 b+e 24 c+d 25 c+e 26. d+e 27. а 28. b 29. c 30. d 31 e
Според източници в интернет, които прегледах сега, празният субсет също се брои за субсет и това ги прави 32 общо. Иначе задачата наистина е малко объркваща.