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, Супермодераторы



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

Сейчас этот форум просматривают: Andrei P


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

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