2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Генерация заданий
Сообщение26.09.2017, 08:12 
Аватара пользователя


06/08/09
127
Украина
Здравствуйте, уважаемые учасники форума.
Столкнулся со следующей проблемой. В рамках одного из курсов возникла необходимостьв генерации большого количества задач на тему: "Операции над нечеткими множествами". Пример такой задачи.
Задача n. Дано универсальное множество $X=\{1,2,3,4,5,6,7,8,9,10\}$ и два нечетких множества: $A=\{\frac{0.2}{1}+\frac{0.5}{4}+\frac{1}{5}+\frac{0.3}{7}+\frac{0.8}{10}\}$, $B=\{\frac{0.4}{2}+\frac{0.3}{3}+\frac{0.8}{5}+\frac{0.9}{7}\}$. Над множествами А и В выполнить все возможные операции (обьединение, пересечение, нахождение дополнения к универсальному и т.д.).
Так вот, проблема в том, что таких заданий нужно почти 300. Хотелось бы автоматизировать процес генерации самих множеств А и В (множество Х одно и то же для всех заданий). Какое ПО можно для этого использовать, что бы результат получить в виде файла, годного к печати? Можно ли это сделать в Tex?

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение26.09.2017, 08:23 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Я бы использовал Wolfram Mathematica ;-) но можно обойтись обычными табличными процессорами (LibreOffice Calc, MS Excel). В чём конкретно видите затруднения?

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение26.09.2017, 08:39 
Аватара пользователя


06/08/09
127
Украина
Aritaborian
В оформлении получаемого файла. Хочется красивого оформления.

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение26.09.2017, 10:31 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
So, существенная часть задачи проблем не вызывает; проблемы с тем, как сделать красиво? Ну тогда это как минимум не тематика раздела CS. Покажите, что ли, ваши наработки.

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


06/10/08
6422
Vova_Gidro в сообщении #1250809 писал(а):
Можно ли это сделать в Tex?
Можно, но не нужно. Возьмите любой язык программирования, который Вы знаете, и пусть он Вам выведет текст TeX-документа.

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение26.09.2017, 11:01 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Забавно. Я слова «Можно ли это сделать в ТеХ?» изначально понял как «неплохо бы получить на выходе ТеХ-документ» ;-)

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение26.09.2017, 22:11 
Аватара пользователя


06/08/09
127
Украина
Xaositect, Aritaborian
Спасибо за ответы. Генерация самих заданий не проблема. Я, к сожалению, не шибко владею языками программирования, но могу это сделать в Maple. На выходе получу какой то текстовый файл с парами чисел. Проблема возникла в формате вывода. Руководитель хочет, что бы вывод был сделан именно в формате $A=\{\frac{0.3}{1}+...\}$.

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение28.09.2017, 00:59 
Заслуженный участник


12/07/07
4522
Вариант 1. Maple
Нечеткие множества — множества упорядоченных пар. В Maple множества одномерных списков из двух элементов. Выполняем в Maple вычисления над такими структурами, затем нечеткие множества преобразуем в строку. Строки записываем в файл и скармливаем $\TeX$. Примерно такого вида
Код:
> Maple2TeX := proc(A)
   local s, i;
   s:= "";
   for i from 1 to nops(A)-1
     do
       s:= cat(s, "\frac{",convert(A[i][1], string),"}{",convert(A[i][2], string), "}"  "+");
     end;
   if nops(A) <> 0
     then s:= cat(s,  "\frac {",convert(A[nops(A)][1], string), "} {",   convert(A[nops(A)][2], string), "}");
   end;
   s;
  end:

> A:= {[0.2, 1], [0.5,4], [1, 5], [0.3,7], [0.8,10]}:
> Maple2TeX(A);
                     "\frac{.2}{1}+\frac{.5}{4}+\frac{1}{5}+\frac{.3}{7}+\frac {.8} {10}"
И получаем в данном случае $$\frac{.2}{1}+\frac{.5}{4}+\frac{1}{5}+\frac{.3}{7}+\frac {.8} {10}.$$Для ведущих нулей и записи в файл в одном флаконе вместо convert используем форматированный вывод в файл: fprintf. Вроде проблем не предвидится.

Вариант 2. TeX
Находим в Maple нечеткие множества в виде множеств из двухэлементных списков; выводим в текстовый файл; считываем этот файл в TeX; формируем в нём нужные текстовые представления.

 Профиль  
                  
 
 Re: Генерация заданий
Сообщение28.09.2017, 11:04 
Заслуженный участник


12/07/07
4522
1. Maple. fprintf
Код:
> Maple2TeX := proc(A)
   local i;
   global fout;
   fprintf(fout, "$\\left\\{");
   for i from 1 to nops(A)-1
     do
      fprintf(fout, "\\frac{%03.1f}{%d} + ", A[i, 1], A[i, 2]);
     end;
   if nops(A) <> 0
     then fprintf(fout, "\\frac{%03.1f}{%d} \\right \\}$\n ", A[nops(A), 1], A[nops(A), 2]):
   end;
  end:
> A:= {[0.2, 1], [0.5,4], [1, 5], [0.3,7], [0.8,10]}:
> B:= {[0.4,2], [0.3, 3], [0.8, 5], [0.9, 7]}:
> fout := fopen("d:\\delme.txt",WRITE):
> Maple2TeX(A):
> Maple2TeX(B):
> fclose(fout);

Содержимое файла delme.txt
Код:
$\left\{\frac{0.2}{1} + \frac{0.5}{4} + \frac{1.0}{5} + \frac{0.3}{7} + \frac{0.8}{10} \right \}$
$\left\{\frac{0.4}{2} + \frac{0.3}{3} + \frac{0.8}{5} + \frac{0.9}{7} \right \}$

Результат
$\left\{\frac{0.2}{1} + \frac{0.5}{4} + \frac{1.0}{5} + \frac{0.3}{7} + \frac{0.8}{10} \right \}$
$\left\{\frac{0.4}{2} + \frac{0.3}{3} + \frac{0.8}{5} + \frac{0.9}{7} \right \}$

-- Чт 28.09.2017 10:09:45 --

Чуть исправил функцию.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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



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

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


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

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