(define (divCounter myvalue mybase) (/ (- myvalue (remainder myvalue mybase)) mybase))
(define (divValue myvalue mybase) (- myvalue (remainder myvalue mybase)))
(define (maxBase myvalue mybase mysbase)
(if (> myvalue mybase)
(maxBase myvalue (* mybase mysbase) mysbase)
(begin
(if (= myvalue mybase)
mybase
(/ mybase mysbase)
))))
(define (baselist myvalue mynextbase mysbase)
(if (>= mynextbase 1)
(begin
(display "; ")
(display mynextbase)
(display ": ")
(display (divCounter myvalue mynextbase))
(display " [")
(display (divValue myvalue mynextbase))
(display "] ")
(newline)
(baselist (- myvalue (divValue myvalue mynextbase)) (/ mynextbase mysbase) mysbase)
) #t))
(define (startit myvalue mysbase) (baselist myvalue (maxBase myvalue mysbase mysbase) mysbase))
Example #1 Using it for the mayan numal system (vigesimal system/20-based):
(startit 1600883401 20)
; 1280000000: 1 [1280000000]
; 64000000: 5 [320000000]
; 3200000: 0 [0]
; 160000: 5 [800000]
; 8000: 10 [80000]
; 400: 8 [3200]
; 20: 10 [200]
; 1: 1 [1]
;Value: #t
Example #2 Using it for the sexagesimal sumerian numeral system (60-based):
(startit 64854876400 60)
; 46656000000: 1 [46656000000]
; 777600000: 23 [17884800000]
; 12960000: 24 [311040000]
; 216000: 14 [3024000]
; 3600: 3 [10800]
; 60: 26 [1560]
; 1: 40 [40]
;Value: #t25. März 2019 | mit scheme | scheme | lisp | old data
Startseite | Impressum | Datenschutz