;;; this code will return a list 

(load "/mit/cdsdev/beta/config/probability.scm")
(define qc-birth .15)
(define qc-numtrials 0)
(define qc-curlist '())
(define qc-qlength 0)
(define qc-death .20)
(define listlength 31)
(define trial 0)
(define emptylist (zeros 31))
(define array (list->vector emptylist))
(define foo '())
(define (process l)
  (cond ((null? l) '())
	((= qc-numtrials 0) emptylist)
	(else (cons (/ (car l) qc-numtrials) (process (cdr l))))))

(define floatmax (- (* 65536 32768) 1))
(define (qc-run-trials n)
  (do ((i 0))
      ((>= i n))
    (set! i (+ 1 i))
    (set! trial (/ (random) floatmax))
    (set! qc-numtrials (+ qc-numtrials 1))
    (cond ((and (< trial qc-birth) (= qc-qlength 1000))
	   (set! qc-balk (+ qc-balk 1)))
	  ((< trial qc-birth)
;	   (1+ qc-totbirth)
	   (set! qc-qlength (+ 1 qc-qlength)))
	  ((and (> trial (- 1 qc-death)) (> qc-qlength 0))
;	   (1+ qc-totdeath)
	   (set! qc-qlength (- qc-qlength 1)))
	  (else '()))
    (cond ((<= qc-qlength listlength) 
	   (vector-set! array qc-qlength 
			(+ 1 (vector-ref array qc-qlength)))))))

							     
  
  
