<jupyter_start><jupyter_text>練習問題2.12中央値とパーセント許容誤差を取り、  求める範囲を返すコンストラクタmake-center-percentを定義せよ。  また、与えられた区間に対してパーセント許容誤差を  返すセレクタpercent も定義する必要がある。  centerセレクタは上に書いたものと同じである。<jupyter_code>(define (make-interval a b) (cons a b))
(define (lower-bound x)(car x))
(define (upper-bound x)(cdr x))

(define (make-center-width c w)
  (make-interval (- c w) (+ c w)))
(define (center i)
  (/ (+ (lower-bound i) (upper-bound i)) 2))
(define (width i)
  (/ (- (upper-bound i) (lower-bound i)) 2))

; 動作確認
(let ((i (make-center-width 16.0 2.0)))
  (display (center i))
  (newline)
  (display (width i))
  (newline)
  )
(define (make-center-percent c p)
  (let ((w (* c (/ p 100.0))))
    (make-interval (- c w) (+ c w)))
  )
(define (percent i)
  (* (/ (width i) (center i)) 100.0)
  )

; 動作確認
(let ((i (make-center-percent 16.0 6.25)))
  (display (center i))
  (newline)
  (display (width i))
  (newline)
  (display (percent i))
  (newline)
  )<jupyter_output>16.0
1.0
6.25
{'fraction_non_alphanumeric': 0.1927461139896373, 'fraction_numerical': 0.03316062176165803, 'mean_word_length': 3.735294117647059, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '41810', 'license': 'CC0-1.0', 'n_tokens_mistral': 500, 'n_tokens_neox': 483, 'n_words': 102, 'path': 'exercises/2.12.ipynb', 'repo_name': 'tokits/sicp-study', 'size': '965'}