2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13  След.
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 08:52 
Аватара пользователя


20/10/12
308
Решать задачи без независимой проверки не очень интересно. Вот задача, похожая на последнюю задачу Munin'а.
http://informatics.mccme.ru/moodle/mod/ ... terid=51#1
Там нужно зарегистрироваться и тогда можно будет сдавать решение не проверку.

Но можно начать с чего-нибудь особенно простого, например:
http://informatics.mccme.ru/moodle/mod/ ... ?id=2296#1
В такой задаче тоже могут быть свои трудности. Например, старые версии gcc не любили '\r',
а новички долго не могли понять, в чем дело. А старая версия ejudge требовала, чтобы все
строки кончались на '\n'. Было много вопросов: "У меня дома всё работает, а тут не проходит
ни один тест." Против подобных заморочек лучше всего помогает пример.
Вам нужно просто скопировать следующую программу на C в файл и послать этот файл на проверку.
Справитесь?

Код:
#include <stdio.h>  /* Нужно почти всегда. */
#include <stdlib.h> /* Нужно почти всегда. */
#include <math.h> /* Для sqrt() */
int main(void) {       /* Параметры не нужны */
   double a,b;     /* Определим 2 действительные переменные */
   scanf("%lf%lf", &a, &b); /* Прочитаем числа из стандартного ввода */
   printf("%lf\n",sqrt(a*a+b*b)); /* Вычисляем результаты и выводим ответ */
   return 0;  /* Выходим из программы с нулевым кодом ошибки. */
}


Об исполнении доложить. :D

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 11:10 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Sphinx Pinastri в сообщении #689962 писал(а):
Вот задача, похожая на последнюю задачу Munin'а.

На первый взгляд да, на второй - она существенно сложнее :-) Я специально написал со скобочками гораздо более простое условие. Чтобы всё-таки раскачать Ktina сделать что-то не математическое, а алгоритмическое.

-- 02.03.2013 12:37:11 --

Если задачи с разбором синтаксических выражений скучны или вызывают ступор - есть и другие. Например:
12 коней http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... id_prb=680
Куча камней http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... id_prb=866
Корни многочлена http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... l?id_prb=6 (не знаю, как решать, но выглядит интересно)
Инверсии http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... ?id_prb=13
Ханойские башни http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... id_prb=873 (интересно, существует ли простое нерекурсивное решение)
Монеты http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... ?id_prb=18
Путь в лабиринте http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... id_prb=246

И разминочная
Солнечное затмение http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... id_prb=892

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 12:14 
Аватара пользователя


11/07/09
112
А может у Вас просто аллергия на язык Си ?
Попробуйте что-то другое.
Скачайте Дельфи и поиграйтесь на нем. (Правда, не знаю, жив ли он еще и годится ли на Win-7, может придется остаться на ХР ).
Я за свою долгую трудовую жизнь - на чем только не писала, начиная с Алгола...
Несколько разных ассемблеров, паскаль-дельфи, макросы на Экселе.
Сейчас меня занесло на LabView. Красивенькая штучка.
И только на Си осталась неизлечимая аллергия.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 12:27 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Тут и Haskell в соседней теме используют, и Prolog, зачем так себя ограничивать-то? :-)

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 13:28 
Аватара пользователя


01/12/11

8634
zinka в сообщении #690022 писал(а):
А может у Вас просто аллергия на язык Си ?

По-моему, не только на него, но и вообще на все языки программирования.

(Оффтоп)

А с аллергией на укусы пчёл в морские котики не берут.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 13:45 
Заслуженный участник


11/05/08
32166
Munin в сообщении #690001 писал(а):
Корни многочлена http://atpp.vstu.edu.ru/cgi-bin/arh_pro ... l?id_prb=6 (не знаю, как решать, но выглядит интересно)

Тупо решать: перебирать все делители первого и последнего коэффициентов и проверять, не является ли эта дробь корнем. Если является, то прервать цикл проверки, занести корень в массив и разделить многочлен на соответствующую скобку. Повторять тот процесс до те пор, пока удаётся обнаружить корень. Ну потом ещё отсортировать массив корней (это проще и надёжнее, чем предусмотреть сортировку в рабочем цикле).

-- Сб мар 02, 2013 14:50:48 --

А хотя не заметил -- там ведь кратность корней предписано игнорировать. Тогда проще, тогда сокращать многочлен не нужно. И вместо сортировки тогда лучше просто вставлять корень в положенное место массива (если его там ещё нет).

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 14:00 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Ktina в сообщении #690052 писал(а):
По-моему, не только на него, но и вообще на все языки программирования.

Предложите решение на любом языке вообще, хоть на русском, хоть на английском.

(Оффтоп)

Хотя, если вы напишете на иврите, вас мало кто поймёт...


ewert в сообщении #690065 писал(а):
Тупо решать: перебирать все делители первого и последнего коэффициентов и проверять, не является ли эта дробь корнем.

Ну что ж, не так интересно, но для Ktina нормальное упражнение.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 14:18 
Заслуженный участник


11/05/08
32166
Sphinx Pinastri в сообщении #689962 писал(а):
Вот задача, похожая на последнюю задачу Munin'а.
http://informatics.mccme.ru/moodle/mod/ ... terid=51#1

код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
var  s: string;    i: integer;

begin

  readln(s);

  repeat
    i:=Pos('()', s);
    if i<>0 then begin    Delete(s, i, 2);    continue;    end;
    i:=Pos('[]', s);
    if i<>0 then begin    Delete(s, i, 2);    continue;    end;
    i:=Pos('{}', s);
    if i<>0 then begin    Delete(s, i, 2);    continue;    end;
    break;
  until false;

  if s=''   then writeln('yes')   else writeln('no');

end.
 

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 14:22 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Предлагается сами задачи и их решения обсуждать в отдельных темах :-)

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 16:43 
Заслуженный участник


11/05/08
32166
Munin в сообщении #690071 писал(а):
Ну что ж, не так интересно, но для Ktina нормальное упражнение.

Там на самом деле сложнее -- нужно реализовывать длинную арифметику (слава богу, достаточно умножения и сложения). Не случайно всё-таки там довольно слабые ограничения по времени и по памяти, хотя и явно избыточно слабые.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 17:06 
Заслуженный участник


27/04/09
28128
Задача с инверсиями задела. Ничего лучше следующего не придумал:

Вначале есть пустой массив $L$ и $s = 0$ инверсий.

Читаем очередной элемент $a$, вставляем его в $L$ за $O(\log n)$ и увеличиваем $s$ на число элементов, оказавшихся правее $a$.

Если $\sum_{i=1}^n i\log i = O(n\log n)$ (а вдруг нет), то получается $O(n\log n)$. Можно лучше?

-- Сб мар 02, 2013 20:07:44 --

P. S. Почему $O$ так распространилась в анализе сложности, когда есть $\Theta$? :?

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 17:22 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Для перестановки можно $O(n)$ через разбиение на циклы. Для произвольного массива не знаю.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 18:39 
Заслуженный участник


27/04/09
28128
В упоминаемой задаче на входе всегда перестановка.

-- Сб мар 02, 2013 21:42:11 --

Нет, вру. Числа могут быть из большего интервала, чем длина последовательности.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 19:28 
Заслуженный участник


15/05/05
3445
USA
Ktina в сообщении #689811 писал(а):
Как только что выяснилось, составляю алгоритмы я довольно неплохо. Следовательно, проблема в чём-то другом.
Ktina в сообщении #690052 писал(а):
zinka в сообщении #690022 писал(а):
А может у Вас просто аллергия на язык Си ?
По-моему, не только на него, но и вообще на все языки программирования.

Сказано было мудрецами:
"Плохой программист пренебрегает деталями; плохой системный архитектор тонет в деталях".
(вольный перевод с нерусского)

Может быть именно копание в деталях реализации Вам и не нравится?
Тогда Вы можете стать хорошим системным архитектором.

 Профиль  
                  
 
 Re: Программирование для неудачников
Сообщение02.03.2013, 20:30 


26/02/13
7
Xaositect в сообщении #689845 писал(а):
Необходимо по заданному алгебраическому выражению построить реализующую его (с точностью до лишних скобок) формулу языка $F$.
я правильно понимаю, что в "заданном алгебраическом выражении" могут быть использованы только четыре арифметических действия, буквы и скобки? если нет, то- что ещё?

-- 02.03.2013, 21:32 --

Munin в сообщении #690001 писал(а):
Если задачи с разбором синтаксических выражений скучны или вызывают ступор - есть и другие. Например:
огромное спасибо! я тоже попробую поучиться))

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 193 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group