База знаний Wolfram|Alpha
Таблица истинности может быть построена сразу для нескольких логических выражений:
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)
Пример схемы логической функции ранее был показан на
: логические схемы приводятся в ответах на запросы, содержащие логические выражения.Пример 19. Изображение отдельного логического элемента в системе Wolfram|Alpha можно получить с помощью запроса
Xor gate
Результат показан на
.Битовые операции
В системе 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 - коэффициента при . Функции 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]=