Skip to content

Instantly share code, notes, and snippets.

View Cryolite's full-sized avatar

Cryolite Cryolite

View GitHub Profile
@Cryolite
Cryolite / config.txt
Created September 24, 2018 03:37
ルータ B の IP マスカレイド適用時における DF ビットの扱いの設定
# nat descriptor masquerade remove df-bit off
@Cryolite
Cryolite / config.txt
Created September 24, 2018 03:47
ルータ B の WAN 側インタフェイス (LAN2) における不正アクセス検知機能の設定例
# ip lan2 intrusion detection in on
# ip lan2 intrustion detection out on
@Cryolite
Cryolite / client
Created February 7, 2019 16:25
https://qiita.com/nwtgck/items/78309fc529da7776cba0 のプロトコル上に証明書による安全な鍵交換を実装する PoC コード
#!/usr/bin/env bash
set -euo pipefail
if [[ -v VERBOSE ]]; then
set -x
PS4='+$LINENO: '
fi
function print-error-message ()
{
theory Scratch
imports Main
begin
fun plus1 :: "nat ⇒ nat" where
"plus1 n = n + 1"
theorem plus1E:
assumes "plus1 x = y"
obtains "y = x + 1"
theory Scratch
imports Main
begin
lemma
shows "∀x. P x"
proof -
{
fix t
have "P t" sorry
@Cryolite
Cryolite / merge.py
Created January 31, 2022 10:09
Merges two or more shuffled files into one shuffled stream as a whole
#!/usr/bin/env python3
import random
from pathlib import Path
import gzip
import sys
def main() -> None:
if len(sys.argv) <= 2:
@Cryolite
Cryolite / kanachan-design.md
Created April 15, 2022 11:18
kanachan について (2022年4月15日現在)

kanachan の基本思想は

  • 麻雀に関する事前知識は最低限のルールを除いて明示的には一切与えない.
  • 特徴量は局面に関する情報を完全に取り出せる簡潔な表現を使う.
  • それ以外は何も工夫せず,とにかくモデルの表現力と学習量で殴り倒す.

behavioral-cloning

まずモデルの構造は図のとおり(図は behavioral cloning の場合のものだけれど, transformer 以下の encoder 部分は一切変わらず,それより上の decoder 部分が例えば強化学習では dueling network になったりするだけ).入力の "Sparse", "Numeric", "Progression", "Possible Actions" は kanachan のドキュメントに書いてある通り.

@Cryolite
Cryolite / 牌構成の変わらない槓.md
Last active August 14, 2024 13:15
「牌構成の変わらない槓」の一定義

本稿の趣旨

ある牌姿(純手牌 + 上がり牌)が与えられた時に,それを標準和了形( $m$ 面子1雀頭による和了形)に分解する手順を厳格に定義するのは難しいように思われる.他方,ある4つの面子と1つの雀頭が与えられた時に,それが成す牌姿を得るのは非常に簡単である(無論,異なる4面子1雀頭の組み合わせが同じ牌姿となることはある).そこで,まず最初に $m$ 面子1雀頭の組み合わせを構成的に全列挙してしまってから各種の定義を導こうというのが本稿の趣旨である.

定義(分解子)

分解子集合 $D = \{d_0,\ d_1,\ d_2,\ d_3,\ d_4,\ d_5,\ d_6,\ d_7,\ d_8,\ d_9\} \subset \mathbb{N}^3$ を以下で定義する:

  • $d_0 = (0, 0, 0)$
  • $d_1 = (1, 0, 0)$
  • $d_2 = (2, 0, 0)$