Обpобка масивiв
(SETQ lst (UNPACK atm) endel (ASCII 0) endct 0)$ (symmax 'nil)
(LOOP(n . 1)
((NULL lst))$ (symmax 1222334)
(SETQ el (CAR lst) ct 0)(\2 . 3 )
(LOOP
((NOT (EQL (CAR lst) el)))
(POP lst)
(INCQ ct) )
(IF (> ct endct) (SETQ endct ct endel el)) )
(CONS endel endct) )
Завдання
1. Написати функцiю:
а) (GORNER n lst x) - обчислення значення многочлена степеня n в точцi x, коефiцiєнти якого заданi в списку lst.
б) (APPL lst1 lst2) - злиття двох вiдсортованих спискiв у вiдсортований список.
в) (SCALAR lst1 lst2) - скалярний добуток двох векторiв, координати яких заданi списками.
2. Дано список з n чисел та натуральне число m < n. Для кожної групи з m елементiв, що знаходяться поруч, обчислити її суму. Видати список з усiх можливих сум. Загальна кiлькiсть дiй повинна бути O(n).
Приклад: (7 1 4 2 3), m=3. S= (12 7 9).
3. Список LST зберiгає перестановку чисел 1,2,..,n. Визначити кiлькiсть перестановок.
4. Список LST зберiгає перестановку чисел 1,2,..,n. Визначити кiлькiсть циклiв в перестановцi. Наприклад, 152463 = (1)(5632)(4) - три цикла.
5. Надрукувати квадрати всiх натуральних чисел вiд 0 до n. Розв'язати також цю задачу використовуючи тiльки додавання та вiднiмання, при цьому кiлькiсть дiй повинна бути O(n).
6. Написатии функцiї:
а) (MATR_GET m i j) - повернути значення m[i][j], де m - матриця n * n, i<=n, j<=n.
б) (MATR_CHANGE m i j value) - повернути матрицю, у якiй m[i][j]=value.
в) (GENMATR0 i j) - згенерувати нульову матрицю i * j.