約 2,744,716 件
https://w.atwiki.jp/nico-game/pages/143.html
悪魔城ドラキュラ Circle of the Moon NAGA☆MONのSM 【作品の傾向】縛りプレイ 【状況】更新中(07/09/23~) 【全動画数】 【マイリスト】http //www.nicovideo.jp/mylist/1973741 【備考】マジシャンモード、DSS封印、サブウエポン禁止、BOSS以外でのEXP取得禁止、MAX UPアイテム取得禁止という状況の縛りプレイ このゲーム情報を編集
https://w.atwiki.jp/satoschi/pages/7389.html
* |Sino-Tibetan languages|Tibeto-Burman languages|Jingpho-Konyak-Bodo languages| 言語類型 現用言語 使用文字 type living language writing system ISO 639-3 【tvt】 言語名別称 alternate names Totcha Tutsa 方言名 dialect names 参考文献 references WEB ISO 639-3 Registration Authority - SIL International the LINGUIST List Ethnologue
https://w.atwiki.jp/sicpstudygroup/pages/92.html
SICP naga Exercise 5.23 ;;; eval-dispatch に追加 (test (op cond?) (reg exp)) (branch (label ev-cond)) (test (op let?) (reg exp)) (branch (label ev-let)) (test (op let*?) (reg exp)) (branch (label ev-let*)) ;;; eval に追加 ev-cond (assign exp (op cond- if) (reg exp)) (goto (label eval-dispatch)) ev-let (assign exp (op let- combination) (reg exp)) (goto (label eval-dispatch)) ev-let* (assign exp (op let*- nested-lets) (reg exp)) (goto (label eval-dispatch)) ;; test programs (define (cond.test) (format "cond.test[greater] ~s~%cond.test[equal] ~s~%cond.test[2] ~s" (cond (( 3 2) greater) (( 3 2) less)) (cond (( 3 3) greater) (( 3 3) less) (else equal)) (cond ((assoc b ((a 1) (b 2))) = cadr) (else #f)) )) (define (let.test) (format "let.test[6] ~d~%let.test[35] ~d" (let ((x 2) (y 3)) (* x y)) (let ((x 2) (y 3)) (let ((x 7) (z (+ x y))) (* z x))) )) (define (nlet.test) (format "nlet.test[(6 1 3) (-5 -2)] ~s" (let loop ((numbers (3 -2 1 6 -5)) (nonneg ()) (neg ())) (cond ((null? numbers) (list nonneg neg)) (( = (car numbers) 0) (loop (cdr numbers) (cons (car numbers) nonneg) neg)) (( (car numbers) 0) (loop (cdr numbers) nonneg (cons (car numbers) neg))))) )) (define (let*.test) (format "let*test[70] ~d" (let ((x 2) (y 3)) (let* ((x 7) (z (+ x y))) (* z x))) )) ;;;;; EC-Eval input ;;(cond.test) ;;;;; EC-Eval value ;;cond.test[greater] greater ;;cond.test[equal] equal ;;cond.test[2] 2 ;;;;; EC-Eval input ;;(let.test) ;;;;; EC-Eval value ;;let.test[6] 6 ;;let.test[35] 35 ;;;;; EC-Eval input ;;(nlet.test) ;;;;; EC-Eval value ;;nlet.test[(6 1 3) (-5 -2)] ((6 1 3) (-5 -2)) ;;;;; EC-Eval input ;;(let*.test) ;;;;; EC-Eval value ;;let*test[70] 70 Exercise 5.24 ;;; argl を clauses のポインタに使用 ev-cond (save continue) (assign argl (op cond-clauses) (reg exp)) ev-cond-clauses (test (op null?) (reg argl)) (branch (label ev-cond-no-action)) (assign unev (op car) (reg argl)) (test (op cond-else-clause?) (reg unev)) (branch (label ev-cond-sequence)) (save argl) (save unev) (assign exp (op cond-predicate) (reg unev)) (assign continue (label ev-cond-ev-pred-done)) (goto (label eval-dispatch)) ev-cond-ev-pred-done (restore unev) (restore argl) (test (op true?) (reg val)) (branch (label ev-cond-sequence)) (assign argl (op cdr) (reg argl)) (goto (label ev-cond-clauses)) ev-cond-sequence (assign unev (op cond-actions) (reg unev)) (goto (label ev-sequence)) ev-cond-no-action (assign val (const #f)) (restore continue) (goto (reg continue)) ;;; test program (define (cond.test) (format "cond.test[greater] ~s~%cond.test[equal] ~s~%cond.test[2] ~s" (cond (( 3 2) greater) (( 3 2) less)) (cond (( 3 3) greater) (( 3 3) less) (else equal)) ;(cond ((assoc b ((a 1) (b 2))) = cadr) ; (else #f)) skip )) ;;;;; EC-Eval input ;;(cond.test) ;;;;; EC-Eval value ;;cond.test[greater] greater ;;cond.test[equal] equal ;;cond.test[2] skip Exercise 5.25 ;;; register Lazy を eceval に追加しその値が #t であれば遅延評価を行う。 ;;; eceval-operations に以下の手続きを追加 (define (delay-it exp env) (list thunk exp env)) (define (thunk? obj) (tagged-list? obj thunk)) (define (thunk-exp thunk) (cadr thunk)) (define (thunk-env thunk) (caddr thunk)) ;;; primitive / の変更 (test用 gaucheの/は0除算を許可しているので) (define (/ n d) (if (= d 0) (Error "division by 0") (with-module scheme (/ n d)))) ;;; ev-application の変更 ev-application (test (op eq?) (reg Lazy) (const #t)) ;ex5.25 (branch (label L-ev-application)) ;ex5.25 (save continue) (save env) ;;; 遅延評価用の ev-application ;; ex5.25- L-ev-application (save continue) (save env) (assign argl (op operands) (reg exp)) (save argl) (assign exp (op operator) (reg exp)) (assign continue (label ev-application-1)) (goto (label actual-value)) ev-application-1 (restore argl) (restore env) (assign proc (reg val)) (assign continue (label ev-appl-ret)) (goto (label apply)) ev-appl-ret (restore continue) (goto (reg continue)) ;; (apply proc argl env) apply ;; Procedure application L-apply-dispatch (test (op primitive-procedure?) (reg proc)) (branch (label L-primitive-apply)) (test (op compound-procedure?) (reg proc)) (branch (label L-compound-apply)) (goto (label unknown-procedure-type)) L-primitive-apply (save continue) (save proc) (assign continue (label primitive-apply-1)) (goto (label list-of-arg-values)) primitive-apply-1 (restore proc) (assign val (op apply-primitive-procedure) (reg proc) (reg val)) (test (op eq?) (reg exit) (reg val)) (branch (label done)) (restore continue) (goto (reg continue)) L-compound-apply (save proc) (assign continue (label compound-apply-1)) (goto (label list-of-delayed-args)) compound-apply-1 (restore proc) (assign unev (op procedure-parameters) (reg proc)) (assign env (op procedure-environment) (reg proc)) (assign env (op extend-environment) (reg unev) (reg val) (reg env)) (assign unev (op procedure-body) (reg proc)) (goto (label ev-sequence)) ;; (actual-value exp env) actual-value (save continue) (assign continue (label actual-value-1)) (goto (label eval-dispatch)) actual-value-1 (assign continue (label actual-value-2)) (goto (label force-it)) actual-value-2 (restore continue) (goto (reg continue)) ;; (force-it val) force-it (save continue) (test (op thunk?) (reg val)) (branch (label force-it-1)) (goto (label force-it-ret)) force-it-1 (assign exp (op thunk-exp) (reg val)) (assign env (op thunk-env) (reg val)) (assign continue (label force-it-ret)) (goto (label actual-value)) force-it-ret (restore continue) (goto (reg continue)) ;; (list-of-arg-values argl env) list-of-arg-values (test (op no-operands?) (reg argl)) (branch (label list-of-arg-values-nooperands-ret)) (save continue) (assign exp (op first-operand) (reg argl)) (assign argl (op rest-operands) (reg argl)) (save argl) (save env) (assign continue (label list-of-arg-values-1)) (goto (label actual-value)) list-of-arg-values-1 (restore env) (restore argl) (save val) (assign continue (label list-of-arg-values-2)) (goto (label list-of-arg-values)) list-of-arg-values-2 (restore unev) ; saved val !!! (assign val (op cons) (reg unev) (reg val)) (restore continue) (goto (reg continue)) list-of-arg-values-nooperands-ret (assign val (const ())) (goto (reg continue)) ;; (list-of-delayed-args argl env) list-of-delayed-args (test (op no-operands?) (reg argl)) (branch (label list-of-delayed-args-nooperands-ret)) (save continue) (assign exp (op first-operand) (reg argl)) (assign argl (op rest-operands) (reg argl)) (assign val (op delay-it) (reg exp) (reg env)) (save val) (assign continue (label list-of-delayed-args-1)) (goto (label list-of-delayed-args)) list-of-delayed-args-1 (restore unev) ; saved val !!! (assign val (op cons) (reg unev) (reg val)) (restore continue) (goto (reg continue)) list-of-delayed-args-nooperands-ret (assign val (const ())) (goto (reg continue)) ;; -ex5.25 ;;; ev-if の変更 ev-if (save exp) (save env) (save continue) (assign continue (label ev-if-decide)) (assign exp (op if-predicate) (reg exp)) (test (op eq?) (reg Lazy) (const #t)) ; ex5.25 (branch (label actual-value)) ; ex5.25 (goto (label eval-dispatch)) ;;gosh (start eceval) ;;;;; EC-Eval input ;;(define (try a b) ;; (if (= a 0) 1 b)) ;;;;; EC-Eval value ;;ok ;;;;; EC-Eval input ;;(try 0 (/ 1 0)) ;; ;;#!# Error division by 0 ;;done ;;gosh (reg! Lazy #t) - set-register-contents! の短縮形 ;;done ;;gosh (start eceval) ;;;;; EC-Eval input ;;(define (try a b) ;; (if (= a 0) 1 b)) ;;;;; EC-Eval value ;;ok ;;;;; EC-Eval input ;;(try 0 (/ 1 0)) ;;;;; EC-Eval value ;;1 Exercise 5.26 ;;;;; EC-Eval input ;;(fact-i 1) ;;(total-pushes = 64 maximum-depth = 10 current-depth = 0) ;;;;; EC-Eval value ;;1 ;;;;; EC-Eval input ;;(fact-i 2) ;;(total-pushes = 99 maximum-depth = 10 current-depth = 0) ;;;;; EC-Eval value ;;2 ;;;;; EC-Eval input ;;(fact-i 3) ;;(total-pushes = 134 maximum-depth = 10 current-depth = 0) ;;;;; EC-Eval value ;;6 ;;;;; EC-Eval input ;;(fact-i 4) ;;(total-pushes = 169 maximum-depth = 10 current-depth = 0) ;;;;; EC-Eval value ;;24 ;;;;; EC-Eval input ;;(fact-i 5) ;;(total-pushes = 204 maximum-depth = 10 current-depth = 0) ;;;;; EC-Eval value ;;120 ;;; a ;;; iter が呼ばれてから次の iter が呼ばれるまでに使用される stack ;;; の最大 depth ;;; b ;;; 29+35n Exercise 5.27 ;;; 1 2 3 4 5 10 ;;; Max Tot Max Tot Max Tot Max Tot Max Tot Max Tot ;;;Recursive 8 16 13 48 18 80 23 112 28 144 53 304 ;;;Iterrative 10 64 10 99 10 134 10 169 10 204 10 379 ;;;Recursive ;;; Maximum depth 8 + 5 * (n - 1) ;;; Number of pushes 16 + 32 * (n - 1) ;;;Iterative ;;; Maximum depth 10 ;;; Number of pushes 64 + 35 * (n - 1) Exercise 5.28 ;;; 1 2 3 4 5 10 ;;; Max Tot Max Tot Max Tot Max Tot Max Tot Max Tot ;;;Recursive 11 18 19 52 27 86 35 120 43 154 83 324 ;;;Iterrative 17 70 20 107 23 144 26 181 29 218 44 403 ;;;Recursive ;;; Maximum depth 11 + 8 * (n - 1) ;;; Number of pushes 18 + 34 * (n - 1) ;;;Iterative ;;; Maximum depth 17 + 3 * (n - 1) ;;; Number of pushes 70 + 37 * (n - 1) Exercise 5.29 ;;; 2 3 4 5 6 7 8 ;;; Max Tot Max Tot Max Tot Max Tot Max Tot Max Tot Max Tot ;;; 13 72 18 128 23 240 28 408 33 688 38 1136 43 1864 ;;; a. 13 + 5 * (n - 2) ;;; b. S(n) = S(n - 1) + S(n - 2) + 40 ;;; S(n) = 56 * Fib(n + 1) - 40 Exercise 5.30 ;;; a. ;;; eceval-operation に登録されている手続き extend-environment, lookup-variable-value ;;; set-variable-value, expand-clause で呼出される error を Errorsignal に置換える。 (define (Errorsignal . objs) (cons Errorsignal objs)) ;;; 次の3つの手続きをeceval-operations に登録 (define (Error? obj) (and (pair? obj) (eq? (car obj) Errorsignal))) (define (ErrorM errsig) (cdr errsig)) (define (ErrorL objs) (define (iter objs) (if (null? (cdr objs)) (user-print (car objs)) (begin (user-print (car objs)) (display " ") (iter (cdr objs))))) (newline) (display "#!# Error ") (iter objs)) ;;; eceval signal-errorを修正 signal-error (perform (op ErrorL) (reg val)) (goto (label read-eval-print-loop)) signal-errorp (assign val (op ErrorM) (reg val)) (goto (label signal-error)) ;;; eceval extend-environment, lookup-variable-value, set-variavle-value,cond- if ;;; を使用している所を以下の要領で修正。 ev-variable (assign val (op lookup-variable-value) (reg exp) (reg env)) (test (op Error?) (reg val)) (branch (label signal-errorp)) (goto (reg continue)) ;;;;; EC-Eval input ;;#(a b c) ;; ;;#!# Error Unknown-expression-type-error #(a b c) ;;;;; EC-Eval input ;;x ;; ;;#!# Error Unbound variable x ;;;;; EC-Eval input ;;; b ;;; primitive-procedures に登録する primitive の三番目の項目にエラーチェックリストを ;;; を追加する。car であれば、引数の数のチェックと引数が pair であることのチェックを (list car car `((,Eargc (,= (,length (,argv)) 1)) (,Epair))) ;;; のように 一つのチェックを (チェック手続き [必要であればそのパラメータ]) の形式で ;;; 要素として持つリストとして追加する。/ であれば、 (list / / `((,Enums) (,Ediv0))) ;;; となる。apply の前にこのチェックリストを使ってパラメータのチェックを行う。 ;;; primitive-p-parameter-check を eceval-operations に登録 (define PROC ()) (define ARGV ()) (define (argv) ARGV) (define (primitive-p-parameter-check proc argl) (if ( (length proc) 2) (begin (set! ARGV argl) (set! PROC (primitive-implementation proc)) (let check-loop ((checks (primitive-checks proc))) (if (null? checks) done (let ((r (eval (car checks) (interaction-environment)))) (if (Error? r) r (check-loop (cdr checks))))))))) (define (primitive-checks proc) (caddr proc)) (define (proc-name) (let loop ((plist primitive-procedures)) (cond ((null? plist) proc-name-fatal-error) ((eq? (cadar plist) PROC) (caar plist)) (else (loop (cdr plist)))))) (define (Eargc pred) (if (not pred) (Errorsignal "Number of arguments for" (proc-name) ", got" (length ARGV) "args."))) (define (Epair) (if (not (pair? (car ARGV))) (Errorsignal "Pair reqired for" (proc-name) ", but got" (car ARGV)))) (define (Enums) (let loop ((args ARGV)) (cond ((null? args) ok) ((not (number? (car args))) (Errorsignal "Number required for" (proc-name) ", but got" ARGV)) (else (loop (cdr args)))))) (define (Ediv0) (let loop ((args (cdr ARGV))) (cond ((null? args) ok) ((zero? (car args)) (Errorsignal "Division by 0, got" ARGV)) (else (loop (cdr args)))))) ;;; eceval primitive-apply 変更 primitive-apply (assign val (op primitive-p-parameter-check) (reg proc) (reg argl)) (test (op Error?) (reg val)) (branch (label signal-errorp)) (assign val (op apply-primitive-procedure) (reg proc) (reg argl)) ;;;;; EC-Eval input ;;(car 1 2) ;;#!# Error Number of arguments for car , got 2 args. ;;;;; EC-Eval input ;;(car 1) ;;#!# Error Pair reqired for car , got 1 ;;;;; EC-Eval input ;;(car (cons a b)) ;;(total-pushes = 9 maximum-depth = 8 current-depth = 0) ;;;;; EC-Eval value ;;a ;;;;; EC-Eval input ;;(/ 128 a) ;;#!# Error Number required for / , but got (128 a) ;;;;; EC-Eval input ;;(/ 128 0) ;;#!# Error Division by 0, got (128 0) ;;;;; EC-Eval input
https://w.atwiki.jp/nico-game/pages/142.html
悪魔城ドラキュラ Circle of the Moon NAGA☆MONの大冒険 【作品の傾向】ふつうにプレイ 【状況】途中で終了?(07/08/21~07/09/17) 【全動画数】26 【マイリスト】http //www.nicovideo.jp/mylist/1973741 【備考】 このゲーム情報を編集
https://w.atwiki.jp/mcmaster/pages/63.html
FREESCALE SEMICONDUCTOR FREESCALE SEMICONDUCTOR製品のマーキングコード一覧です。 MOTOROLAからスピンアウトした会社なので、MOTOROLA製品を引き継いでいます(ON SEMICONDUCTORも同様)。 ディスクリート製品はON SEMICONDUCTORに移管されたようです。 マーキングコードは同じでも製品型番が異なるものもありますので外形、特性などをデータシートで比べることをおすすめします。 メーカーのwebサイトなど(web site,etc) FREESCALE SEMICONDUCTOR (Japan) FREESCALE SEMICONDUCTOR (USA) マーキングコードリスト * , ** , *** , ****,_=date code,Lot No. etc. #=hfe rank. MARKINGCODE PART No.Grade etc. MAKER PACKAGENAME MAKERPACKAGE NAME PINCOUNT etc. リンク MARKING CODE一覧 画像一覧
https://w.atwiki.jp/satoschi/pages/7383.html
コニャク・ナガ語 |Sino-Tibetan languages|Tibeto-Burman languages|Jingpho-Konyak-Bodo languages| 言語類型 現用言語 使用文字 ラテン文字【Latn?】 type living language writing system Latin alphabet ISO 639-3 【nbe】 言語名別称 alternate names Kanyak Konyak コニャク語、コニャック語 コニャック・ナガ語 方言名 dialect names Angphang Changnyu Chen Chingkao Chinglang Choha Gelekidoria Hopao Jakphang Longching Longkhai Longmein Longwa Mon Mulung Ngangching Sang Shamnyuyanga Shanlang Shengha Shunyuo Sima Sowa Tableng (Mohung, Kongon, Angwangku, Wakching) Tabu Tamkhungnyuo Tang Tobunyuo Tolamleinyua Totok 参考文献 references WEB ISO 639-3 Registration Authority - SIL International the LINGUIST List Ethnologue
https://w.atwiki.jp/sicpstudygroup/pages/91.html
SICP naga Exercise 5.20 ;;; pair pointer の形式を (vector index)+10000000 とした。 (define ex5.20 (make-machine (the-cars the-cdrs free pointerID x y ret val sval) (list (list vector-ref vector-ref) (list vector-set! vector-set!) (list make-vector make-vector) (list + +) (list - -) (list format format) (list = =)) (machine (assign the-cars (op make-vector) (const 100)) (assign the-cdrs (op make-vector) (const 100)) (assign pointerID (const 10000000)) (assign free (reg pointerID)) (goto (label main)) ;; (define (list x y) ;; (cons x (cons y ()))) ;; val x sval y / val list list (save ret) (save val) (assign val (reg sval)) (assign sval (const ())) (assign ret (label list-1)) (goto (label cons)) list-1 (assign sval (reg val)) (restore val) (assign continue (label list-2)) (goto (label cons)) list-2 (restore continue) (goto (reg continue)) ;; (define (car x)) ;; val x / val (car x) car (assign val (op -) (reg val) (reg pointerID)) (assign val (op vector-ref) (reg the-cars) (reg val)) (goto (reg continue)) ;; (define (cdr x)) ;; val x / val (cdr x) cdr (assign val (op -) (reg val) (reg pointerID)) (assign val (op vector-ref) (reg the-cdrs) (reg val)) (goto (reg continue)) ;; (define (cons x y)) ;; val x sval y / val cons cons (assign free (op -) (reg free) (reg pointerID)) (perform (op vector-set!) (reg the-cars) (reg free) (reg val)) (perform (op vector-set!) (reg the-cdrs) (reg free) (reg sval)) (assign free (op +) (reg free) (reg pointerID)) (assign val (reg free)) (assign free (op +) (reg free) (const 1)) (goto (reg continue)) ;; ;; main ;; (define x (cons 1 2)) (assign val (const 1)) (assign sval (const 2)) (assign continue (label main-1)) (goto (label cons)) main-1 (assign x (reg val)) ;; (define y (list x x)) (assign val (reg x)) (assign sval (reg x)) (assign continue (label main-2)) (goto (label list)) main-2 (assign y (reg val)) ;; ;; (perform (op format) (const #t) (const "reg x ~s y ~s free ~s~%Pair-index~%") (reg x) (reg y) (reg free)) (assign sval (reg pointerID)) loop (test (op =) (reg sval) (reg free)) (branch (label loop-end)) (assign val (reg sval)) (assign continue (label loop-1)) (goto (label car)) loop-1 (assign x (reg val)) (assign val (reg sval)) (assign continue (label loop-2)) (goto (label cdr)) loop-2 (assign y (reg val)) (perform (op format) (const #t) (const " ~8d car ~8s cdr ~8s~%") (reg sval) (reg x) (reg y)) (assign sval (op +) (reg sval) (const 1)) (goto (label loop)) loop-end) )) ;;gosh (start ex5.20) ;;reg x 10000000 y 10000002 free 10000003 ;;Pair-index ;; 10000000 car 1 cdr 2 ;; 10000001 car 10000000 cdr () ;; 10000002 car 10000000 cdr 10000001 Exercise 5.21 ;;; a (define count-leaves-a (make-machine (tree val continue w) (list (list null? null?) (list not not) (list pair? pair?) (list + +) (list car car) (list cdr cdr) (list display display) (list newline newline)) (machine (assign continue (label count-leaves-end)) count-leaves (test (op null?) (reg tree)) (assign val (const 0)) (branch (label return)) (assign val (op pair?) (reg tree)) (test (op not) (reg val)) (assign val (const 1)) (branch (label return)) ;; (save continue) (assign continue (label car-count-end)) (save tree) (assign tree (op car) (reg tree)) (goto (label count-leaves)) car-count-end (restore tree) (save val) (assign continue (label cdr-count-end)) (assign tree (op cdr) (reg tree)) (goto (label count-leaves)) cdr-count-end (restore w) (assign val (op +) (reg val) (reg w)) (restore continue) return (goto (reg continue)) count-leaves-end (perform (op display) (reg val)) (perform (op newline)) ))) (define t0 ()) (define t1 1) (define t2 (1 . 2)) (define t3 ((1 . 2) 3)) (define t4 ((() . 1) (2 . 3) (4 . ()))) ;;gosh (set-register-contents! count-leaves-a tree t0) ;;gosh (start count-leaves-a) ;;0 ;;gosh (set-register-contents! count-leaves-a tree t1) ;;gosh (start count-leaves-a) ;;1 ;;gosh (set-register-contents! count-leaves-a tree t2) ;;gosh (start count-leaves-a) ;;2 ;;gosh (set-register-contents! count-leaves-a tree t3) ;;gosh (start count-leaves-a) ;;3 ;;gosh (set-register-contents! count-leaves-a tree t4) ;;gosh (start count-leaves-a) ;;4 ;;; b (define count-leaves-b (make-machine (tree n val continue) (list (list null? null?) (list not not) (list pair? pair?) (list + +) (list cdr cdr) (list car car) (list display display) (list newline newline)) (machine (assign n (const 0)) (assign continue (label count-leaves-end)) count-iter (test (op null?) (reg tree)) (assign val (reg n)) (branch (label return)) (assign val (op pair?) (reg tree)) (test (op not) (reg val)) (assign val (op +) (reg n) (const 1)) (branch (label return)) ;; (save continue) (assign continue (label car-iter)) (save tree) (assign tree (op car) (reg tree)) (goto (label count-iter)) car-iter (assign n (reg val)) (assign continue (label cdr-iter)) (restore tree) (assign tree (op cdr) (reg tree)) (goto (label count-iter)) cdr-iter (restore continue) return (goto (reg continue)) count-leaves-end (perform (op display) (reg val)) (perform (op newline)) ))) ;;gosh (set-register-contents! count-leaves-b tree t1) ;;gosh (start count-leaves-b) ;;1 ;;gosh (set-register-contents! count-leaves-b tree t2) ;;gosh (start count-leaves-b) ;;2 ;;gosh (set-register-contents! count-leaves-b tree t3) ;;gosh (start count-leaves-b) ;;3 ;;gosh (set-register-contents! count-leaves-b tree t4) ;;gosh (start count-leaves-b) ;;4 Exercise 5.22 ;;; (define (append x y) ;;; (if (null? x) ;;; y ;;; (cons (car x) (append (cdr x) y)))) (define append (make-machine (x y val continue) (list (list null? null?) (list cons cons) (list car car) (list cdr cdr) (list display display) (list newline newline)) (machine (assign continue (label append-end)) append (test (op null?) (reg x)) (assign val (reg y)) (branch (label return)) ;; (save x) (assign x (op cdr) (reg x)) (save continue) (assign continue (label append-cdr-end)) (goto (label append)) append-cdr-end (restore continue) (restore x) (assign x (op car) (reg x)) (assign val (op cons) (reg x) (reg val)) return (goto (reg continue)) append-end (perform (op display) (reg val)) (perform (op newline)) ))) (set-register-contents! append x (a b c)) (set-register-contents! append y (x y z)) ;;gosh (start append) ;;(a b c x y z) ;;done ;;; (define (append! x y) ;;; (set-cdr! (last-pair x) y) ;;; x) ;;; (define (last-pair x) ;;; (if (null? (cdr x)) ;;; x ;;; (last-pair (cdr x)))) (define append! (make-machine (x y val continue) (list (list null? null?) (list cdr cdr) (list set-cdr! set-cdr!) (list display display) (list newline newline)) (machine (save x) (assign continue (label set-cdr)) (goto (label last-pair)) set-cdr (perform (op set-cdr!) (reg val) (reg y)) (restore val) (goto (label append!-end)) ;; last-pair (assign val (op cdr) (reg x)) (test (op null?) (reg val)) (assign val (reg x)) (branch (label return)) (assign x (op cdr) (reg x)) (goto (label last-pair)) return (goto (reg continue)) ;; append!-end (perform (op display) (reg val)) (perform (op newline)) ))) (set-register-contents! append! x (a b c)) (set-register-contents! append! y (x y z)) ;;gosh (start append!) ;;(a b c x y z) ;;done
https://w.atwiki.jp/mtgflavortext/pages/302.html
「我々が道に迷って疲れ果てたとき、生き延びる術を教えてくれたのがアイノクたちだった。彼らは、自らをアブザンと名乗るとともに鱗を身に纏うに相応しい資格を得たのだ。」 ――アブザンのカン、アナフェンザ "When we were lost and weary, the ainok showed us how to survive. They have earned the right to call themselves Abzan, and to wear the Scale." ――Anafenza, khan of the Abzan タルキール覇王譚 【M TG Wiki】} 名前
https://w.atwiki.jp/todo314/pages/423.html
Scalable Large Near-Clique Detection in Large-Scale Networks via Sampling Michael Mitzenmacher, Jakub Pachocki, Richard Peng, Charalampos Tsourakakis, Shen Chen Xu KDD 2015 概要 The K-clique Densest Subgraph Problemの後続 k-クリーク密部分グラフをいい感じの二部グラフ構築+疎化により爆速で解く 基本はランダムサンプリング 10~10000倍早くなった $$(p,q)$$-clique densest subgraph $$\#(p,q)$$-clique/点数 を最大化したい 提案手法 二部グラフ構築 実は(k-1)-cliqueでOK ぶっちゃけ同じらしい Densest subgraph sparsifier k-cliqueとか(p,q)-bicliqueを超辺に変換する $$ p_D = \frac{6\log n}{\epsilon^2 D} $$で各超辺をサンプルする W.h.p, $$ \rho(U) \geq D $$ なら $$ \tilde{\rho(U)}\geq(1-\epsilon)C \log n $$ $$ \rho(U) (1-2\epsilon)D $$ なら $$ \tilde{\rho(U)} (1-\epsilon)C \log n $$ 証明のアイデア Pr[Uがやばい]$$\leq n^{-3|U|}$$ だから全部足しても以外と大事 大雑把な結論 時間$$p_D$$倍、空間$${p_D}^2$$倍 超辺をその場でサンプリングすればOK 実験 p_Dとかεの値がイマイチ分かりにくい… kが大きい方が効果的 k=3 数十倍、k=4 数百倍、k=5 数千倍以上 まとめ 結構すごい ρが小さいとあまり上手く行かなさそう そういう場合はそもそも意味が無いから大きいと仮定して良いのかな? KDD 密グラフ 疎化 2017/06/11
https://w.atwiki.jp/sicpstudygroup/pages/60.html
naga Todo 2.64 2.65 2.66 2.67 2.68 2.69 2.70 2.71 2.72 2.73 2.74 2.75 2.76 2.79 2.81 2.82 2.83 2.84 2.85 2.86 Exercise 2.53 ;;gosh (list a b c) ;;(a b c) ;;gosh (list (list george)) ;;((george)) ;;gosh (cdr ((x1 x2) (y1 y2))) ;;((y1 y2)) ;;gosh (cadr ((x1 x2) (y1 y2))) ;;(y1 y2) ;;gosh (pair? (car (a short list))) ;;#f ;;gosh (memq red ((red shoes) (blue socks))) ;;#f ;;gosh (memq red (red shoes blue socks)) ;;(red shoes blue socks) Exercise 2.54 (define (equal? x y) (cond ((and (symbol? x) (symbol? y)) (eq? x y)) ((and (pair? x) (pair? y)) (and (equal? (car x) (car y)) (equal? (cdr x) (cdr y)))) ((and (null? x) (null? y))) (else #f))) ;;gosh (equal? (this is a list) (this is a list)) ;;#t ;;gosh (equal? (this is a list) (this (is a) list)) ;;#f Exercise 2.55 ;; x は(quate x)のシンタックスシュガーなので ;; (car abr~)- (car (quote (quote abr~)))を評価すると(quote abr~)のcarをとることになるので ;; - quote ;;gosh (car abr) ;;quote Exercise 2.56 (define (exponentiation? x) (and (pair? x) (eq? (car x) **))) (define (base s) (cadr s)) (define (exponent s) (caddr s)) (define (make-exponentiation e1 e2) (cond ((=number? e2 0) 1) ((=number? e2 1) e1) (else (list ** e1 e2)))) (define (deriv exp var) (cond ((number? exp) 0) ((variable? exp) (if (same-variable? exp var) 1 0)) ((sum? exp) (make-sum (deriv (addend exp) var) (deriv (augend exp) var))) ((product? exp) (make-sum (make-product (multiplier exp) (deriv (multiplicand exp) var)) (make-product (deriv (multiplier exp) var) (multiplicand exp)))) ((exponentiation? exp) (make-product (make-product (exponent exp) (make-exponentiation (base exp) (- (exponent exp) 1))) (deriv (base exp) var))) (else (error unknown expression type -- DERIV exp)))) ;;gosh (deriv (** (+ x 3) 5) x) ;;(* 5 (** (+ x 3) 4)) Exercise 2.57 (define (augend s) (if (null? (cdddr s)) (caddr s) (cons + (cddr s)))) (define (multiplicand p) (if (null? (cdddr p)) (caddr p) (cons * (cddr p)))) ;;gosh (deriv (* x y (+ x 3)) x) ;;(+ (* x y) (* y (+ x 3))) Exercise 2.58 ;; a (define (sum? x) (and (pair? x) (eq? (cadr x) +))) (define (addend s) (car s)) (define (augend s) (caddr s)) (define (make-sum a1 a2) (cond ((=number? a1 0) a2) ((=number? a2 0) a1) ((and (number? a1) (number? a2)) (+ a1 a2)) (else (list a1 + a2)))) (define (product? p) (and (pair? p) (eq? (cadr p) *))) (define (multiplier p) (car p)) (define (multiplicand p) (caddr p)) (define (make-product m1 m2) (cond ((or (=number? m1 0) (=number? m2 0)) 0) ((=number? m1 1) m2) ((=number? m2 1) m1) ((and (number? m1) (number? m2)) (* m1 m2)) (else (list m1 * m2)))) ;;gosh (deriv (x + (3 * (x + (y + 2)))) x) ;;4 ;;gosh (deriv ((x * x) + (4 * x) + 4) x) ;;((x + x) + 4) ;; b ;;exp のリスト要素中に優先度の低い演算子+があればexpはsumであり、+の前までをaddend,+の後ろをaugend ;;とする。*についても同様におこなうが、sum?の判定と処理をproduct?の判定と処理に先立って行うことで、 ;;演算子の優先度にしたがった処理となる。 (define (dup-list-till s l) (if (eq? s (car l)) () (cons (car l) (dup-list-till s (cdr l))))) (define (1st-item-if-not-pairs p) (if (null? (cdr p)) (car p) p)) (define (sum? x) (and (pair? x) (memq + x))) (define (addend x) (1st-item-if-not-pairs (dup-list-till + x))) (define (augend x) (1st-item-if-not-pairs (cdr (memq + x)))) (define (product? p) (and (pair? p) (memq * p))) (define (multiplier p) (1st-item-if-not-pairs (dup-list-till * p))) (define (multiplicand p) (1st-item-if-not-pairs (cdr (memq * p)))) ;;gosh (deriv (x + 3 * (x + y + 2)) x) ;;4 ;;gosh (deriv (x * x + 4 * x + 3) x) ;;((x + x) + 4) Exercise 2.59 (define (union-set set1 set2) (cond ((null? set1) set2) ((element-of-set? (car set1) set2) (union-set (cdr set1) set2)) (else (cons (car set1) (union-set (cdr set1) set2))))) ;;gosh (define a (5 4 3 2 1)) ;;a ;;gosh (define b (8 7 6 5 4)) ;;b ;;gosh (union-set a b) ;;(3 2 1 8 7 6 5 4) Exercise 2.60 (define (element-of-set? x set) (cond ((null? set) #f) ((equal? x (car set)) #t) (else (element-of-set? x (cdr set))))) (define (adjoin-set x set) (cons x set)) (define (union-set set1 set2) (append set1 set2)) (define (intersection-set set1 set2) (cond ((or (null? set1) (null? set2)) ()) ((element-of-set? (car set1) set2) (cons (car set1) (intersection-set (cdr set1) (remove-from-set (car set1) set2)))) (else (intersection-set (cdr set1) set2)))) (define (remove-from-set x set) (define (rec set) (cond ((null? set) ()) ((eq? x (car set)) (cdr set)) (else (cons (car set) (rec (cdr set)))))) (rec set)) ;;gosh (define a (1 1 2 3 3)) ;;a ;;gosh (define b (1 3 3 4)) ;;b ;;gosh (adjoin-set 2 a) ;;(2 1 1 2 3 3) ;;gosh (union-set a b) ;;(1 1 2 3 3 1 3 3 4) ;;gosh (intersection-set a b) ;;(1 3 3) Exercise 2.61 (define (adjoin-set x set) (cond ((null? set) (append set (list x))) ((= x (car set)) set) (( x (car set)) (cons x set)) (else (cons (car set) (adjoin-set x (cdr set)))))) ;;gosh (define set (2 3 5 6)) ;;set ;;gosh (adjoin-set 1 set) ;;(1 2 3 5 6) ;;gosh (adjoin-set 7 set) ;;(2 3 5 6 7) ;;gosh (adjoin-set 4 set) ;;(2 3 4 5 6) ;;gosh (adjoin-set 3 set) ;;(2 3 5 6) Exercise 2.62 (define (union-set set1 set2) (cond ((null? set1) set2) ((null? set2) set1) (else (let ((x1 (car set1)) (x2 (car set2))) (cond ((= x1 x2) (cons x1 (union-set (cdr set1) (cdr set2)))) (( x1 x2) (cons x1 (union-set (cdr set1) set2))) (else (cons x2 (union-set set1 (cdr set2))))))))) ;;gosh (define set1 (1 3 5 7)) ;;set1 ;;gosh (define set2 (2 4 5 6 8)) ;;set2 ;;gosh (union-set set1 set2) ;;(1 2 3 4 5 6 7 8) Exercise 2.63 (define t1 (make-tree 7 (make-tree 3 (make-tree 1 () ()) (make-tree 5 () ())) (make-tree 9 () (make-tree 11 () ())))) (define t2 (make-tree 3 (make-tree 1 () ()) (make-tree 7 (make-tree 5 () ()) (make-tree 9 () (make-tree 11 () ()))))) (define t3 (make-tree 5 (make-tree 3 (make-tree 1 () ()) ()) (make-tree 9 (make-tree 7 () ()) (make-tree 11 () ())))) (define (tree- list-1 tree) (if (null? tree) () (append (tree- list-1 (left-branch-tree tree)) (cons (entry tree) (tree- list-1 (right-branch-tree tree)))))) (define (tree- list-2 tree) (define (copy-to-list tree result-list) (if (null? tree) result-list (copy-to-list (left-branch-tree tree) (cons (entry tree) (copy-to-list (right-branch-tree tree) result-list))))) (copy-to-list tree ())) ;;gosh t1 ;;(7 (3 (1 () ()) (5 () ())) (9 () (11 () ()))) ;;gosh t2 ;;(3 (1 () ()) (7 (5 () ()) (9 () (11 () ())))) ;;gosh t3 ;;(5 (3 (1 () ()) ()) (9 (7 () ()) (11 () ()))) ;;gosh (tree- list-1 t1) ;;(1 3 5 7 9 11) ;;gosh (tree- list-1 t2) ;;(1 3 5 7 9 11) ;;gosh (tree- list-1 t3) ;;(1 3 5 7 9 11) ;;gosh (tree- list-2 t1) ;;(1 3 5 7 9 11) ;;gosh (tree- list-2 t2) ;;(1 3 5 7 9 11) ;;gosh (tree- list-2 t3) ;;(1 3 5 7 9 11) ; a 両方ともbinary-treeからordered-listを生成 ; b 両方とも1度の呼出しでエントリを正しい位置においてleft-branchとright-branchを再帰的に処理するので ; オーダとしては同じθ(n)? Exercise 2.64 Exercise 2.65 Exercise 2.66 Exercise 2.67 (define sample-tree (make-code-tree (make-leaf A 4) (make-code-tree (make-leaf B 2) (make-code-tree (make-leaf D 1) (make-leaf C 1))))) (define sample-message (0 1 1 0 0 1 0 1 0 1 1 1 0)) ;;gosh (decode sample-message sample-tree) ;;(A D A B B C A) Exercise 2.68 (define (encode message tree) (if (null? message) () (append (encode-symbol (car message) tree) (encode (cdr message) tree)))) (define (encode-symbol symbol tree) (define (rec stree) (cond ((leaf? stree) ()) ((memq symbol (symbols (left-branch stree))) (cons 0 (rec (left-branch stree)))) (else (cons 1 (rec (right-branch stree)))))) (if (memq symbol (symbols tree)) (rec tree) (error "bad symbol -- ENCODE-SYMBOL" symbol))) ;;gosh (encode (A D A B B C A) sample-tree) ;;(0 1 1 0 0 1 0 1 0 1 1 1 0) Exercise 2.69 (define (generate-huffman-tree pairs) (successive-merge (make-leaf-set pairs))) (define (successive-merge leaf-set) (cond ((null? (cdr leaf-set)) (car leaf-set)) (else (successive-merge (adjoin-set-huffman (make-code-tree (car leaf-set) (cadr leaf-set)) (cddr leaf-set)))))) (define pairs ((A 4) (B 2) (C 1) (D 1))) ;;gosh (display (generate-huffman-tree pairs)) ;;((leaf A 4) ((leaf B 2) ((leaf D 1) (leaf C 1) (D C) 2) (B D C) 4) (A B D C) 8)# undef Exercise 2.70 Exercise 2.71 Exercise 2.72 Exercise 2.73 Exercise 2.74 Exercise 2.75 Exercise 2.76 Exercise 2.77 (define (install-complex-selector-package) (put reak-part (complex) real-part) (put imag-part (complex) imag-part) (put magnitude (complex) magnitude) (put angle (complex) angle)) (install-complex-selector-package) (define (real-part z) (apply-generic real-part z)) (define (imag-part z) (apply-generic imag-part z)) (define (magnitude z) (apply-generic magnitude z)) (define (angle z) (apply-generic angle z)) ;;gosh (define z (make-complex-from-real-imag 3 4)) ;;z ;;gosh z ;;(complex rectangular 3 . 4) ;;gosh (magnitude z) ;;5.0 ;;(magnitude top z)- (apply-genric magnitude z)- ;;(magnitude top (cdr z))- (apply-generic magnitude (cdr z))- ;;(magnitude rectangular-package (cddr z))- 5.0 Exercise 2.78 (define (attach-tag type-tag contents) (cond ((eq? type-tag scheme-number) contents) (else (cons type-tag contents)))) (define (type-tag datum) (cond ((number? datum) scheme-number) ((pair? datum) (car datum)) (else (error "Bad tagged datum -- TYPE-TAG" datum)))) (define (contents datum) (cond ((number? datum) datum) ((pair? datum) (cdr datum)) (else (error "Bad tagged datum -- CONTENTS" datum)))) ;;gosh (define n (make-scheme-number 5)) ;;n ;;gosh n ;;5 ;;gosh (type-tag n) ;;scheme-number ;;gosh (contents n) ;;5 Exercise 2.79 Exercise 2.80 (define (=zero? x) (apply-generic =zero? x)) (define (install-=zero?-package) (put =zero? (scheme-number) (lambda (x) (= x 0))) (put =zero? (rational) (lambda (q) (=zero? (numer q)))) (put =zero? (complex) (lambda (z) (=zero? (magnitude z)))) done) (install-=zero?-package) ;; テスト (define o0 0) (define o1 1) (define r0 (make-rational 0 1)) (define r0.5 (make-rational 1 2)) (define c1 (make-complex-from-real-imag 1 1)) (define c0 (make-complex-from-mag-ang 0 1)) ;; 結果 ;;gosh (=zero? o0) ;;#t ;;gosh (=zero? o1) ;;#f ;;gosh (=zero? r0) ;;#t ;;gosh (=zero? r0.5) ;;#f ;;gosh (=zero? c1) ;;#f ;;gosh (=zero? c0) ;;#t Exercise 2.81 Exercise 2.82 Exercise 2.83 Exercise 2.84 Exercise 2.85 Exercise 2.86 Exercise 2.87 ;; なぜadjoin-termはzero?でなく=zero?を使うのだろう? ;; (put zero? (polynomial) (lambda (z) (empty-termlist? z))) (define (=zero? coeff) (zero? coeff)) ;; テスト (define p1 (make-polynomial x ((4 4) (2 2) (0 1)))) (define p2 (make-polynomial x ((3 3) (1 1)))) (define p3 (make-polynomial x ((2 -2)))) (define p4 (make-polynomial x ((2 2)))) (define p5 (make-polynomial y ((3 (polynomial x (2 -2))) (1 1)))) (define p6 (make-polynomial y ((3 (polynomial x (2 2))) (1 1)))) (display (add p1 p2)) (newline) (display (add p2 p1)) (newline) (display (add p1 p3)) (newline) (display (add p3 p4)) (newline) (display p3) (newline) (display p4) (newline) (display p5) (newline) (display p6) (newline) (display (add p5 p6)) (newline) ;; 結果 (polynomial x (4 4) (3 3) (2 2) (1 1) (0 1)) (polynomial x (4 4) (3 3) (2 2) (1 1) (0 1)) (polynomial x (4 4) (0 1)) (polynomial x) (polynomial x (2 -2)) (polynomial x (2 2)) (polynomial y (3 (polynomial x (2 -2))) (1 1)) (polynomial y (3 (polynomial x (2 2))) (1 1)) (polynomial y (3 (polynomial x)) (1 2)) ;一応多項式の係数も判定できているようだ 上記はex2.80で定義する汎用述語が「=zero?」ではなく「zero?」と勘違いしていたため、間違った 内容となっています。 ;; ex2.80に追加して ;; polynomial用の=zero?をgeneric operationに登録 (put =zero? (polynomial) (lambda (z) (empty-termlist? z))) ;; テスト (define p1 (make-polynomial x ((4 4) (2 2) (0 1)))) (define p2 (make-polynomial x ((3 3) (1 1)))) (define p3 (make-polynomial x ((2 -2)))) (define p4 (make-polynomial x ((2 2)))) (define p5 (make-polynomial y ((3 (polynomial x (2 -2))) (1 1)))) (define p6 (make-polynomial y ((3 (polynomial x (2 2))) (1 1)))) (display (add p1 p2)) (newline) (display (add p2 p1)) (newline) (display (add p1 p3)) (newline) (display (add p3 p4)) (newline) (display p3) (newline) (display p4) (newline) (display p5) (newline) (display p6) (newline) (display (add p5 p6)) (newline) ;; 結果 ;;(polynomial x (4 4) (3 3) (2 2) (1 1) (0 1)) ;;(polynomial x (4 4) (3 3) (2 2) (1 1) (0 1)) ;;(polynomial x (4 4) (0 1)) ;;(polynomial x) ;;(polynomial x (2 -2)) ;;(polynomial x (2 2)) ;;(polynomial y (3 (polynomial x (2 -2))) (1 1)) ;;(polynomial y (3 (polynomial x (2 2))) (1 1)) ;;(polynomial y (3 (polynomial x)) (1 2)) ;一応多項式の係数も判定できているようだ