Skip to content

Instantly share code, notes, and snippets.

(use srfi-42)
(use math.prime)
(define (solve N)
(let* [[v (make-vector N)]
[%%solve (^ (n k) (let [[x (vector-ref v k)]
[y (vector-ref v (- n k 1)) ]]
(max (+ x y) (* x y))))]
[%solve (^ (n) (if (zero? n) 1
(max-ec (: k n) (%%solve n k))))]
@plaster
plaster / gacha.md
Last active March 20, 2020 16:26
1/8のガチャに3つほしいものがあるとき「コンプするまで」vs「1個でもあたるまで」の回数のシミュレーション

試行回数: 10万回

EVERY ANY
25% 9 1
50% 13 2
75% 19 3
90% 26 5
99% 43 10
99.9% 60 15
FINISHED --2018-04-18 05:48:59--
Total wall clock time: 2m 38s
Downloaded: 435 files, 1.7G in 2m 21s (12.3 MB/s)
ル╹ヮ╹ルɔ cymbal:/mnt/hgfs/MIKA/plaster/mod-diary-2018-04-16/pdfs
% file *.pdf | sed -e 's/.*://' | sort | uniq -c
175 PDF document, version 1.3
260 PDF document, version 1.4
ル╹ヮ╹ルɔ cymbal:/mnt/hgfs/MIKA/plaster/mod-diary-2018-04-16/pdfs
% wc -l ../pdf-list.txt
435 ../pdf-list.txt
@plaster
plaster / gacha.scm
Last active March 18, 2018 16:18
チョコエッグ16種のうち残り4種をコンプしたいんだけどいくつ買ったらどのくらいの確率でコンプできるか
(use srfi-27)
(use util.match)
(define (play-out n N x)
;; x times trial
;; n species to get
;; N species supplied
(let1 C (- (ash 1 n) 1) ;; 1111... [n times]
(let loop [[ c 0 ]
[ x x ]
@plaster
plaster / gist:4363770
Last active February 18, 2017 06:54
Clojureのダイナミックスコープと`Var/setDynamic`

https://gist.github.com/4357479 で「ダイナミックスコープな変数であるかどうか」をプログラムから(というかreplから)知る方法について調べた経緯です。

*print-readably* を対象にして調べる途上で出会ったいろいろなものについて、とりとめなくgdgdに書いています。

var

replで *print-readably* だけみると、値については教えてくれますが、変数については教えてくれません。 さっきのしらべものの途中で見つけた http://d.hatena.ne.jp/athos/20111204/elephant_things_in_clojure#'fact の表記があったため、試してみたところ

pe-16.core=> #'*print-readably*
@plaster
plaster / pe-16.clj
Last active February 18, 2017 06:52
Project Euler Problem 16 solution in Clojure
;;;; Project Euler Problem 16 solution
;;;; http://projecteuler.net/problem=16
(use 'clojure.test)
(import 'java.math.BigInteger)
;; Character/digit usage from: https://gist.github.com/4276901
(def solve
(comp (partial apply +)
(partial map #(Character/digit ^char % 10))
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\WindowsUpdate\AU]
"NoAutoRebootWithLoggedOnUsers"=dword:00000001
@plaster
plaster / tee_pipe.txt
Last active December 21, 2016 17:38
tee pipe
ル╹ヮ╹ルɔ jolokia:~
% (yes | tee /tmp/yes.txt | while read; do sleep 1; done) &
[1] 303
ル╹ヮ╹ルɔ jolokia:~
% while true; do sleep 1; ls -lh /tmp/yes.txt; done
-rw-r--r-- 1 plaster plaster 64K Dec 22 02:20 /tmp/yes.txt
-rw-r--r-- 1 plaster plaster 64K Dec 22 02:20 /tmp/yes.txt
-rw-r--r-- 1 plaster plaster 64K Dec 22 02:20 /tmp/yes.txt
-rw-r--r-- 1 plaster plaster 64K Dec 22 02:20 /tmp/yes.txt
-rw-r--r-- 1 plaster plaster 64K Dec 22 02:20 /tmp/yes.txt
@plaster
plaster / README.md
Last active December 4, 2016 09:29
screen: display&window encoding / settings&options

screen の -U を複数回指定してしまったとき

(WIP)

とある事情から .screenrc と .zshrc をスクラッチで書き直したところ、 「screen を再アタッチするときだけマルチバイト文字の表示が壊れる」というヘンテコな現象に遭遇してしまいました。

https://twitter.com/plaster/status/801431121082748928

@plaster
plaster / testtest.sh
Last active November 15, 2016 03:38
testtestb.sh, testtest_{3,4}.txt: Thanks to @hio
if test $1 = $2; then echo '='; else echo '!='; fi
if test "$1" = "$2"; then echo '='; else echo '!='; fi
if [ $1 = $2 ]; then echo '='; else echo '!='; fi
if [ "$1" = "$2" ]; then echo '='; else echo '!='; fi