<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    scheme解約瑟夫環問題

    Posted on 2008-03-20 19:15 dennis 閱讀(741) 評論(2)  編輯  收藏 所屬分類: 計算機科學與基礎
        看了javaeye上一個解決約瑟夫環的問題的帖子,就想能不能用scheme來解決。如果采用推導出的數學公式來處理當然很簡單了:
    (define (joseph n m)
      (define (joseph
    -iter init s)
        (
    if (> init n)
            (
    + s 1)
            (joseph
    -iter (+ init 1) (remainder (+ s m) init))))
      (joseph
    -iter 2 0))
        我想是否可以用一般的模擬算法來實現?也就是模擬一個循環鏈表,每次刪除第m個元素。弄了個比較丑陋的實現:

    (define (enumrate-interval low high)
      (
    if (> low high)
          
    '()
          (cons low (enumrate-interval (+ low 1) high))))
    (define (delete
    -last list)
      (
    if (eq? (cdr list) '())
          '()
          (cons (car list) (delete-last (cdr list)))))

    (define (joseph
    -iter init list it) 
      (let ((m (remainder it (length list))))
       (cond ((
    = m 0) (delete-last list))
             ((
    = m 1) (append (cdr list) (reverse init)))
             (
    else
               (joseph
    -iter (cons (car list) init) (cdr list) (- m 1))))))
    (define (joseph n m)
        (define (joseph
    -list list m)
          (display list) 
          (newline)
          (
    if (eq? (cdr list) '())
              (car list)
              (joseph
    -list (joseph-iter '() list m) m)))

    計算(joseph 8 3)的過程如下:
    (1 2 3 4 5 6 7 8)
    (4 5 6 7 8 1 2)
    (7 8 1 2 4 5)
    (2 4 5 7 8)
    (7 8 2 4)
    (4 7 8)
    (4 7)
    (7)
    7

    看了這個計算過程就知道我這個方法多糟糕,每次都重新構造列表。不知道看blog的大大們有沒有更好的思路?


    評論

    # re: scheme解約瑟夫環問題[未登錄]  回復  更多評論   

    2008-03-20 20:49 by bobo
    如果用流的話就不需要每次都構造列表了呀..

    # re: scheme解約瑟夫環問題[未登錄]  回復  更多評論   

    2008-03-21 10:09 by bobo
    不過就算是用流,也是感覺怪怪的。。。
    主站蜘蛛池模板: 在线观看av永久免费| 亚洲精品偷拍视频免费观看| 亚洲国产模特在线播放| 久久精品国产亚洲AV无码麻豆| 亚洲AV人无码激艳猛片| 亚洲AV乱码久久精品蜜桃| 亚洲国产二区三区久久| 亚洲第一区视频在线观看| 99ri精品国产亚洲| 亚洲人成网站18禁止久久影院| 亚洲日本乱码卡2卡3卡新区| 亚洲一区二区观看播放| 老牛精品亚洲成av人片| 特级毛片A级毛片100免费播放| eeuss草民免费| 丁香花在线视频观看免费| 99爱在线观看免费完整版| 1a级毛片免费观看| 无码日韩人妻av一区免费| 成人免费视频试看120秒| 国产免费观看青青草原网站| 亚洲M码 欧洲S码SSS222| 亚洲中文字幕无码久久综合网| 国产成人亚洲综合色影视| 亚洲AV无码乱码国产麻豆穿越| 在线观看亚洲一区二区| 亚洲综合av一区二区三区| 99亚洲男女激情在线观看| 巨胸喷奶水www永久免费| 中文字幕免费视频一| 成人性生免费视频| 亚洲精品视频在线观看你懂的| 亚洲va国产va天堂va久久| 亚洲国产成人久久99精品| 亚洲6080yy久久无码产自国产| 污污免费在线观看| 一级毛片免费播放| 免费黄色一级毛片| 亚洲人JIZZ日本人| 久久综合久久综合亚洲| 国产精品玖玖美女张开腿让男人桶爽免费看|