Интеллектуалная разминка.
Предлагаю ряд задач которые нашел интересными (можно рассматривать как викторину).
************************
Требуется вычислить количество N - значных счастливых билетов. Напомним, что билет называется счастливым, если сумма первой половины его цифр равна сумме другой его половины. Например, билет 564159 счастливый, т.к. 5+6+4=1+5+9. N<=100;
Признаюсь к своему стыду, когда я делал такое впервые для 6-ти значного числа, то
перебирал сумы от 0 до 27 (ето все возможные сумы для 3-значного числа),
для каждой сумы перебирал от 0 до 999 смотрел сколькими вариантами можно сформировать 3-значное число с такой сумой цифр,
поднимал ето количество вариантов в квадрат (потому что 2 части по 3 знака) и сумировал к результату.
Ответ то правильный, но вот метод частично плохой. Хотя и лутше чем все 6-ти значные варианты перебрать.
А правильно ето делается совсем по другому .....
По твоей теории так этот топ будет пустым еще дооолгое время....
2Vladimir:
А можно и свои задачки добавлять? Тут у меня олимп. с ХНУРЭ 2007...
да, если интересные.
случайно не с acm.timus, а?
оттуда тоже есть. Вообще свой список небольшой имеется...
Предлагаю ряд задач которые нашел интересными (можно рассматривать как викторину).
************************
Требуется вычислить количество N - значных счастливых билетов. Напомним, что билет называется счастливым, если сумма первой половины его цифр равна сумме другой его половины. Например, билет 564159 счастливый, т.к. 5+6+4=1+5+9. N<=100;
Ф топку.. в чем "интересность"-то заключается?
В том, что если ето зделать неправильно, то для N=100 програма будет искать ответ пока Солце не сгорит ;).
Предложи то, что тебе кажется интересным.
о_О А зачем перебирать все.. Нужно ведь только найти количество, а не все билетики - а это обычная комбинаторня задача.
Ах если бы обычная... В школе, на оллимпиадах, задачи такого рода решали перебором, а что бы за временные рамки не выйти полученные результаты в switch засовывали ))
Вот собственно и все, а я так надеялся что ктото сам код напишет :).
Vladimir Можно я сюда еще одну простенькую задачку дам ?
Посмотри последний пост от koltaviy. Там ссылка есть. Я полностю не читал но ето оно самое :). Я делал методом описаним Л. М. Финк - Ещё раз
о счастливых билетах (Квант 12). Если там не поймеш приходи, поговорим.
ЗЫ. Хотелось бы услышать решение автора темы. Вероятно он знает чтото еще оригиналнее.
for (i=0; i<28; mas[i++]=0);
for (vit=0; vit<28; vit++){
s=0;
for (i=0; i<10; i++)
for (j=0; j<10; j++)
for (k=0; k<10; k++)
if ((i+j+k)==vit)
s++;
mas[vit]=s;
}//vit
прогарма роботает в 28 раз дольше чем надо.
for (i=0; i<28; mas[i++]=0);
for (i=0; i<10; i++)
for (j=0; j<10; j++)
for (k=0; k<10; k++)
mas[i+j+k]++;
}//vit
for (i=0; i<28; mas[i++]=0);
А почему i<28 ?
А зачем, вообще, так инициализировать массив.
Можно проще:
продолжим.
Нидали высказаться.
В моём словаре нету слова kernel, да я и не люблю по словарям лазить.
Наскока мне извесна ядро - это core. А браин Керниган довольно известный человег. который много всего и замутил.
Половина юзеров русифицыруют свои линупсы только и слышно как кириллицу выправить, если такие граматеи...
http://en.wikipedia.org/wiki/Kernel_(computer_science) - где здесь расшифровывается абриввеатура, если как я уже сказал у меня словарик карманный? Что я должен подумать!
Браво! :rolleyes:
можно хотя бы комментарии к переменным, что делают циклы и почему массив в 28 элементов???
простите за дурость...
продолжим.
Нидали высказаться.
В моём словаре нету слова kernel, да я и не люблю по словарям лазить.
Наскока мне извесна ядро - это core. А браин Керниган довольно известный человег. который много всего и замутил.
Половина юзеров русифицыруют свои линупсы только и слышно как кириллицу выправить, если такие граматеи...
http://en.wikipedia.org/wiki/Kernel_(computer_science) - где здесь расшифровывается абриввеатура, если как я уже сказал у меня словарик карманный? Что я должен подумать!
Браво! :rolleyes:
гм, упорствуем в своем неведении?
1) если не хочешь облаживаться дальше, советую тебе все таки по словарям лазить. Почти вся документация по никсам - на английском языке.
2) lingvo.yandex.ru - и будет тебе счастье в переводе с разных языков.
3) core - это безусловно ядро. Но если я не глючю, это слово обычно применяется к ядрам процессора, а ядро ос обычно переводится, как kernel
3) что ты хотел сказать про граматеев, русифицирующих линукс? к чему это высказывание?
4) куда ты а английскую википедию лезешь, если английского не знаешь?
http://ru.wikipedia.org/wiki/Kernel
Брайан Керниган, человек конечно крупный, но подумать надо все-таки логически, насколько мне помнится непосредственно к написанию кернелов он отношения не имеет.
З.Ы. за оффтоп просьба не пинать, всетаки раздел такой...
Все эти словари, википедии, учебники и справочники - для тупых лохов и ботанов. Настоящие пацаны на такую туфту время не тратят!
можно хотя бы комментарии к переменным, что делают циклы и почему массив в 28 элементов???
Цыклы ищут сколько есть трехзначных чисел с конкретной сумой цифр.
Масив на 28 елементов потому что частичный случай. Билеты шестизначные, в половине 3 цыфры. Отсюда сума в диапазоне от 0 (000) до 27 (999) итого 28 возможных сум.
1) если не хочешь облаживаться дальше, советую тебе все таки по словарям лазить.
Так облажался уже ж :D
Ладно больше не офтоплю! Нормально!