Add tags

Add tags to the following comment
ただ計算を繰り返すだけのコードでメモ化等はしていませんが、
古えのLisp1.5/IBM7094はどんなものなのかなと思いぐるぐる回してみました。
ずっとGCしっぱなししたが、なんとか結果はでました。
IBM7094 / SIMH 3.7 / LINUX / Core2 E6600の環境で、
実行時間は7時間丁度でした。

実行結果:
 END OF EVALQUOTE, VALUE IS ..
 (837799 524)

  THE TIME ( 0/ 0  000.0) HAS COME, THE WALRUS SAID, TO TALK OF MANY THI
NGS .....   -LEWIS CARROLL-
 END OF EVALQUOTE OPERATOR
             FIN      END OF LISP RUN
 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
26
27
28
DEFINE((
(EVENP (LAMBDA (N) (ZEROP (REMAINDER N 2))))

(COLLATZ (LAMBDA (X Y)(PROG (N CNT)
                  (SETQ N X)
                  (SETQ CNT Y)
            L     (COND ((EQUAL 1 N) (RETURN CNT))
                        ((EVENP N) (SETQ N (QUOTIENT N 2)))
                        (T (SETQ N (ADD1 (TIMES 3 N)))))
                  (SETQ CNT (ADD1 CNT))
                  (GO L))))

(COLLTAZ-MAX (LAMBDA (X) (PROG (N RES HN HS)
                      (SETQ N 1)
                      (SETQ HS 0)
                L     (COND ((GREATERP N X) 
                             (RETURN (LIST HN HS))))
                      (SETQ RES (COLLATZ N 0))
                      (COND ((GREATERP RES HS)
                             (PROG ()
                                (SETQ HS RES)
                                (SETQ HN N))))
                      (SETQ N (ADD1 N))
                      (GO L))))
))

PROG(()
     (RETURN (COLLTAZ-MAX (EXPT 2 20))))

Add tags

The input will be splited to tags with space.

Index

Feed

Other

Link

Pathtraq

loading...