Российский государственный гуманитарный университет
Опубликован: 13.07.2022 | Доступ: свободный | Студентов: 249 / 8 | Длительность: 11:54:00
Специальности: Программист
Лекция 7:

База знаний Wolfram|Alpha

< Лекция 6 || Лекция 7: 123456

Таблица истинности может быть построена сразу для нескольких логических выражений:

In[2]:= 	BooleanTable[{a, b, And[a, b], Or[a, b], 
Implies[a, b], Equivalent[a, b], Xor[a, b],
Nand[a, b], Nor[a, b]}, {a, b}]//TableForm
Out[2]//TableForm= 
True	True	True	True	True	True	False	False	False 	
True	False	False	True	False	False	True	True	False
False	True	False	True	True	False	True	True	False
False	False	False	False	True	True	False	True	True

Упростить логическое выражение, вычислить его ДНФ, а также найти по таблице истинности логической функции номер правила для элементарного клеточного автомата можно следующим образом:

In[3]:= 	Simplify[Xnor[(a||!b)&&c, Nor[Implies[a, !c], a]]]
 Out[3]= 	(!a && b) || !c
 In[4]:= 	LogicalExpand[(a||!b||c)&& (!a||b||c||!d)]
 Out[4]= 	c | | (a & & b) || (a & & !d) || (!a & & !b) || (!b & & !d) 
 In[5]:= 	val = BooleanTable[(!a & & b)|| !c, {a, b, c}]
 Out[5]= 	{False, True, False, True, True, True, False, True}
 In[6]:= 	boolelist = Boole[val]
 Out[6]= 	{0, 1, 0, 1, 1, 1, 0, 1}
 In[7]:= 	FromDigits[boolelist, 2]
 Out[7]= 	93
Электронные логические схемы

Изображения электронных логических схем в системе Wolfram|Alpha строятся в ответ на запросы вида

logic circuit (a or not b) and (c xor d)

Пример схемы логической функции ранее был показан на

 рис. 7.17 (a)

рис. 7.17 (a)
: логические схемы приводятся в ответах на запросы, содержащие логические выражения.

Пример 19. Изображение отдельного логического элемента в системе Wolfram|Alpha можно получить с помощью запроса

Xor gate

Результат показан на

 рис. 7.19

рис. 7.19
.

 Логический элемент Xor (ANSI)

Рис. 7.19. Логический элемент Xor (ANSI)
Битовые операции

В системе Wolfram|Alpha запросы для битовых операций могут задаваться с помощью функций языка Wolfram, при этом аргументы могут заключаться как в квадратные скобки, так и в круглые. Первый символ в имени функции может быть как прописным, так и строчным.

Например, результатом вычисления запроса

bitOr(4, 9, 10)

является 15.

Пример 20. В языке Wolfram побитовые операции конъюнкции, дизъюнкции и строгой дизъюнкции выполняются с помощью функций BitAnd, BitOr и BitXor, соответственно.

Запрос BitNot[n] возвращает число - 1 - n.

Функция BitLength находит наименьшее число двоичных разрядов, которые необходимы для представления числа.

Ниже приведены примеры запросов:

 In[1]:= 	{BitAnd[4,9,10], BitOr[4,9,10], BitXor[4,9,10]} 
BitNot[12]
BitLength[2345]
 Out[1]= 	{0, 15, 7}
 Out[2]= 	-13
 Out[3]= 	12

Функция BitGet от аргументов n и k возвращает значение двоичного разряда числа n - коэффициента при 2^k. Функции BitSet и BitClear устанавливают в разряде k числа n значения 1 и 0, соответственно:

 In[4]:= 	BitGet[2345, 10] 
 Out[4]= 	0
 In[5]:= 	BitSet[2345, 10] 
 Out[5]= 	3 369
 In[6]:= 	BitClear[3369, 10]
 Out[6]= 	2 345

Функция IntegerDigits возвращает список цифр числа в заданной системе счисления, функция FromDigits по списку цифр числа и основанию системы счисления возвращает десятичное представление этого числа:

 In[7]:= 	IntegerDigits[2345, 2] 
IntegerDigits[6789, 16] 
 Out[7]= 	{1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1}
 Out[8]= 	{1, 10, 8, 5}
 In[9]:= 	FromDigits[{1, 0, 0, 1, 0, 0, 1}, 2]
FromDigits[{11, 56, 40}, 60]
 Out[9]= 	73
 Out[10]= 	43000
Игра "Ним". Использование сущностей в облаке Wolfram

База знаний Wolfram|Alpha содержит информацию о большом количестве игр. Описание игры "Ним" приводится в ответ на запрос

Nim game

Пример 21. Ниже приведены примеры запросов, которые возвращают общие сведения об игре "Ним" в облаке Wolfram:

In[1]:= Entity["FamousMathGame", "Nim"]

Out[1]=


In[2]:=	Entity["FamousMathGame", "Nim"][ "Statement"]
Entity["FamousMathGame", "Nim"][ "FormulationDate"]
Entity["FamousMathGame", "Nim"][ "AdditionalPeople"
Out[2]=	Given one or more piles ("nim-heaps"), players alternate by taking all or some of the counters in a single heap. The player taking the last counter or stack of counters is the winner.

Out[3]=


Out[4]=


Для получения информации из базы знаний, используется функция Entity (сущность). Создать сущность можно с помощью сочетания клавиш Ctrl + =:


В появившееся поле для ввода следует ввести название понятия, в данном случае nim, и нажать клавишу Enter. Система предложит вариант ассоциации этой сущности. Согласие с ней выражается нажатием на галочку:


После этого можно задать, например, запрос обо всех доступных свойствах сущности:

In[5]=


Out[5]=


Информацию обо всех значениях свойств сразу можно получить с помощью запроса


Сведения об отдельных свойствах возвращаются с помощью запроса вида

In[6]=


Out[6]=


< Лекция 6 || Лекция 7: 123456