ПРОГРАММА
1- многочлен
Генерация случайного логического многочлена
1. Общее описание
2. Условные обозначения
3. Упрощения
4. Структура многочлена
5. Формирование исходного многочлена
6. Формирование концовки многочлена
7. Ввод – вывод
1. Общее описание
Программа предназначена для формирования случайных логических многочленов.
Случайным образом выбирается порядок элементов логического многочлена:
логические операции (связки), скобки, логические операции (связки), переменные.
Связки: отрицание, конъюкция, дизъюнкция, импликация и эквиаленция
Скобки: левая и правая
Принято: 11 переменных.
2. Условные обозначения
Для упрощения программы введены условные обозначения.
Связки:
Отрицание: знак минус «-»
Связки:
Конъюнкция: 1
Дизъюнкция: 2
Импликация: 3
Эквиваленция: 4
Скобки:
Левая: 6
Правая: 7
Переменные
Числа в диапазоне: 10 -11
В формуле (A связка B): A - первая переменная, B – вторая переменная
3. Упрощения
В ходе построения многочлена не формируются последовательности:
Отрицание отрицание, отрицание отрицание отрицание ………………………………………..
Переменная связка переменная связка переменная ……….
4. Структура многочлена
4.1 Вначале формируется исходный многочлен длиной y.
Левые скобки и переменные, перед которыми отрицания, считаются за один элемент многочлена.
Если исходный многочлен логически не завершен, добавляется концовка.
4.2. Построение многочлена начинается с левой скобки или переменной.
4.3. При формировании многочлена вычисляются:
k - Число левых скобок p – число правых скобок
При формировании многочлена проверяется условие: k>p
В сформированном многочлене k=p
4.4 Формирование исходного многочлена продолжается, пока с учётом концовки можно создать логически непротиворечивый многочлен.
То есть исходные многочлены имеют длину в диапазоне: 3 …y
5. Формирование исходного многочлена
Левая скобка: левая скобка или первая переменная
Связка: левая скобка, вторая переменная
Первая переменная: связка
Связка: левая скобка или вторая переменная
Правая скобка: связка или правая скобка
Вторая переменная: правая скобка
6. Формирование концовки многочлена
Левая скобка – правые скобки
Правая скобка – правые скобки
Вторая переменная – правые скобки
Связка – переменная – правые скобки
Первая переменная – связка – вторая переменная – правая скобка
7. Ввод и вывод
Входные данные:
y=25; //предельная длина исходного многочлена
a1 = 5; // для вычисления вероятности
b1 = 5 ; // для вычисления вероятности
b2=5; // для вычисления вероятности
d1=5; // для вычисления вероятности
w=5; // для вычисления вероятности
w1=5; // для вычисления вероятности
w2=5; // для вычисления вероятности
w3=5; // для вычисления вероятности
Вывод:
Первая строка: многочлен
Вторая строка: номер операции, в которой определен элемент многочлена
Третья строка: текущая величина k
Четвертая строка: текущая величина p
Пятая строка: метка T (0 и 1). Служит для определения переменой, первая или вторая.
Скачать
https://yadi.sk/d/TLyaE5TMSo9dFg
Отредактировано ABC (2021-12-04 18:31:38)