Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
Ler4onok
1

Даны два двоичных числа в виде списков, нужно их сложить

15.12.2010, 20:16. Показов 3379. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
даны два двоичных числа в виде списков....нужно их сложить..результат должен выводиться так же в виде списка...
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2010, 20:16
Ответы с готовыми решениями:

Даны два списка одинаковой длины, элементы которых - числа. Найти список с элементами - суммами соответствующих элементов исходных списков
Даны два списка одинаковой длины, элементы которых - числа. Найти список с элементами - суммами...

Сложить два действительных двоичных числа
Ввести два действительных двоичных числа, представленных как символьные строки, и найти их сумму....

Сложить два двоичных числа по модулю 2
Здравствуйте. Нужен код сложения двух двоичных чисел по модулю 2. Нужно сложить два числа так,...

Сложить два двоичных числа и проверить результат
помогите пожалуйста доделать задачу не получается нужно сложить два двоичных числа и проверить...

11
VH
428 / 256 / 23
Регистрация: 23.11.2010
Сообщений: 278
16.12.2010, 15:55 2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun F (L1 L2)
 (reverse
  ((lambda (fdef)
    (funcall fdef fdef (reverse L1) (reverse L2)))
  '(lambda (fname b1 b2 &optional (flag 0))
    (if (or b1 b2)
     ((lambda (bit)
       (cons
        (rem bit 2)
        (funcall fname fname (cdr b1) (cdr b2) (if (> bit 1) 1 0))))
      (+ (cond ((car b1)) (0)) (cond ((car b2)) (0)) flag))
     (if (plusp flag) (cons flag nil)))))))
2
Ler4onok
17.12.2010, 19:44 3
спасибо большое

Добавлено через 21 час 44 минуты
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(defun f2 (x y)
    (
        cond ((null x) (if (null y) nil y))
            ((null y) (if (null x) nil x))
            (t (cons (+ (car x) (car y)) (f2 (cdr x) (cdr y))))
    )
)
 
(defun f (x)
    (
        cond ((null (cdr x)) (if (< (car x) 10) x (list (- (car x) 10) 1)))
            
        (t  (cons (if (< (car x) 10) (car x) (- (car x) 10)) (f (if (< (car x) 10) (cdr x) (rplaca (cdr x) (+ (cadr x) 1))))))
    )
)
 
 
(defun ff (x y)
    (
        reverse (f (f2 (reverse x) (reverse y)))
    )
)

что_то вроде этого,только для двоичных чисел можно?....
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 5
09.04.2011, 12:45 4
Цитата Сообщение от VH Посмотреть сообщение
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun F (L1 L2)
 (reverse
  ((lambda (fdef)
    (funcall fdef fdef (reverse L1) (reverse L2)))
  '(lambda (fname b1 b2 &optional (flag 0))
    (if (or b1 b2)
     ((lambda (bit)
       (cons
        (rem bit 2)
        (funcall fname fname (cdr b1) (cdr b2) (if (> bit 1) 1 0))))
      (+ (cond ((car b1)) (0)) (cond ((car b2)) (0)) flag))
     (if (plusp flag) (cons flag nil)))))))
Данная программа не работает в системе Corman LISP. Зачем вообще нужны все эти идиотские диалекты?
0
m@shik
17.04.2011, 12:52 5
помогите!!!!нужно определить предикат RAZDEL(X,Y,Z), истинный тогда и только тогда, когда Y – это список элементов X на нечётных местах, а Z – список элементов X на чётных местах, например RAZDEL([a,b,c,d,e,f,g] , [a,c,e,g] , [b,d,f]). Пожалуйста!!! вопрпос сдачи ГОСа....
спасибо!!!
VH
428 / 256 / 23
Регистрация: 23.11.2010
Сообщений: 278
17.04.2011, 16:09 6
Lisp
1
2
3
4
5
(defun RAZDEL (X Y Z)
 (cond
  ((null X) T)
  ((null Y) nil)
  ((equal (car X) (car Y)) (RAZDEL (cdr X) Z (cdr Y)))))
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,654
Записей в блоге: 13
05.03.2013, 11:50 7
Сложение двоичных (как списков) HomeLisp :

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(defun bin-add (lst1 lst2 &optional (sh 0))
  (cond ((null lst1) (if (zerop sh) lst2 (bin-add '(1) lst2)))
        ((null lst2) (if (zerop sh) lst1 (bin-add '(1) lst1)))
        (t (let* ((r  (+ sh (car (last lst1)) (car (last lst2))))
                  (v  (% r 2))
                  (sh (\ r 2)))
                 (append (bin-add (butlast lst1) (butlast lst2) sh) (list v))))))
 
==> bin-add
 
(bin-add '(1 0 1) '(1 0))
 
==> (1 1 1)
 
(bin-add '(1 0 1) '(1 1))
 
==> (1 0 0 0)
 
(bin-add '(1 0 1) '(1 0 1))
 
==> (1 0 1 0)
 
(bin-add '(1 0 1) '(1 1 1))
 
==> (1 1 0 0)
0
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
05.03.2013, 16:52 8
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun binary-arithmetic (w)
  (format
   nil "~b"
   (reduce
    (car w)
    (mapcar
     #'(lambda (a)
         (parse-integer (write-to-string a) :radix 2))
     (cdr w)))))
 
> (binary-arithmetic  '(+ 1011 111001 101))
"1001001"
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,654
Записей в блоге: 13
05.03.2013, 17:58 9
но в условии стояло: "даны два двоичных числа в виде списков"...
0
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
05.03.2013, 18:15 10
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun deci-bin (n &optional ac)
  (if (zerop n) ac (deci-bin (floor (/ n 2)) (cons (mod n 2) ac))))
 
(defun bin-deci (w &optional (n 0))
  (if (null w) n (bin-deci (cdr w) (+ (car w) n n))))
 
(defun binary+ (&rest w)
  (deci-bin (reduce #'+ (mapcar #'bin-deci w))))
 
> (binary+  '(1 0 1 1) '(1 1 1 0 0 1) '(1 0 1))
(1 0 0 1 0 0 1)
1
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
05.03.2013, 19:52 11
А что делать с переполнением? В смысле разрядность какая-то фиксированная или динамическая?

Добавлено через 25 минут
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defun binary+ (a b)
  (do ((xs (reverse a) (cdr xs))
       (ys (reverse b) (cdr ys))
       (sh 0)
       result)
      ((and (null xs) (null ys))
       (when (> sh 0) (push sh result))
       result)
    (let* ((x (or (car xs) 0))
           (y (or (car ys) 0))
           (s (+ x y sh)))
      (push (rem s 2) result)
      (setf sh (ash s -1)))))
 
(binary+ '(1 0 1 0 0) '(1 1 0 0 0))
; (1 0 1 1 0 0)
 
(binary+ '(1 0 1 0 0) '(1 1 1 0 0))
; (1 1 0 0 0 0)
0
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
04.04.2015, 11:05 12
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(defun deci-bin (n &optional ac)
  (if (zerop n)
      ac
      (deci-bin (floor (/ n 2)) (cons (mod n 2) ac))))
 
(defun bin (w)
  (read-from-string
   (apply
    #'concatenate
    'string
    "#b"
    (mapcar
     #'(lambda (a)
         (write-to-string a))
     w))))
 
(defun binary+ (&rest w)
  (deci-bin (reduce #'+ (mapcar #'bin w))))
 
> (binary+  '(1 0 1 1) '(1 1 1 0 0 1) '(1 0 1))
(1 0 0 1 0 0 1)
1
04.04.2015, 11:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2015, 11:05
Помогаю со студенческими работами здесь

Даны два числа: одно размером dd, другое dw. Сложить эти числа
Дана задачка на ассемблере помогите сделать, а то совсем не шарю Даны два числа одно размером -...

Даны два длинных целых числа (256+) требуется сложить эти числа
Даны два длинных целых числа (256+ символов) требуется сложить эти числа,и подсчитать что получилось

Даны два двоичных числа 10010000 и 00001001. Числа 16-е ASCII–коды и перевести их в 2-е коды
Добрый день, помогите с задачкой: Даны два двоичных числа 10010000 и 00001001. Числа 16-е...

Нужно сложить два числа, состоящие из 200 цифр
задача простая, нужно сложить два числа, состоящие из 200 цифр. прогу вроде написала, но видимо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru