Числовi функцiї, Детальна інформація

Числовi функцiї
Тип документу: Реферат
Сторінок: 6
Предмет: Математика
Автор: Олексій
Розмір: 10.9
Скачувань: 965
T T T

8. Зсув.

(SHIFT m n) - зсув числа m на n бiтiв.

$ (SHIFT 3 1) $ (SHIFT 3 -1) $ (GCD 24 66 600) $ (LCM 24 66 600)

6 1 6 6600

9. НСД, НСК.

(GCD n1 n2 ... nM), (LCM n1 n2 ... nM).

Цi функцiї знаходять вiдповiдно найбiльший спiльний дiльник M чисел та найменше спiльне кратне.

Аpифметичнi задачi

Задача 1. Список lst має 100 елементiв, якi дорiвнюють 0 або 1. Написати функцiю (CHANGE01 lst), яка повертає список, у якому всi елементи 0 замiненi на 1, а 1 - на 0. Необхiдно замiсть використання умовного оператора застосувати дiю X := 1 - X.

(DEFUN CHANGE01 (lst)

((NULL lst) NIL)

(CONS (- 1 (CAR lst)) (CHANGE01 (CDR lst))) )

Задача 2. Змiнним a та b присвоєнi числа. Записати функцiю в одному рядку (не визначати цю функцiю), в результатi якої змiннi обмiнюються своїми значеннями. Використовувати допомiжнi змiннi забороняється.

$ (SETQ a 2 b 3) // a = 2, b = 3

$ (SETQ a (+ a b) b (- a b) a (- a b)) // a = 3, b = 2

Задача 3. Вiдомо, що lst - список, який мiстить неспадну послiдовнiсть чисел. Функцiя (NUM lst) повинна обчислювати кiлькiсть рiзних чисел у ньому.

(DEFUN NUM (lst)

((NULL (CDR lst)) 1)

((/= (CAR lst) (CADR lst)) (+ 1 (NUM (CDR lst))))

(NUM (CDR lst)) )

Задача 4. Списки lst1 та lst2 мiстять строго зростаючi послiдовностi чисел. Знайти кiлькiсть спiльних елементiв у цих масивах. Часова оцiнка алгоритму повинна дорiвнювати O(K+L), де K та L - довжини спискiв lst1 та lst2 вiдповiдно.

(DEFUN COMELEMENT (lst1 lst2)

((OR (NULL lst1) (NULL lst2)) 0)

((< (CAR lst1) (CAR lst2)) (COMELEMENT (CDR lst1) lst2))

((> (CAR lst1) (CAR lst2)) (COMELEMENT lst1 (CDR lst2)))

(+ 1 (COMELEMENT (CDR lst1) (CDR lst2))) )

В файлi irratnal.lsp мiститься великий набiр iррацiональних та трансцендентних функцiй. Аргументи тригонометричних функцiй задаються в радiанах.

1. (EXP x) експонента e^x

2. (EXPT x y) степiнь x^y

The online video editor trusted by teams to make professional video in minutes