Skip to content

Instantly share code, notes, and snippets.

@kujirahand
kujirahand / random_forest.rs
Created April 22, 2025 23:50
Rustでランダムフォレストを実装しよう --- MNISTの判定
use std::collections::HashMap;
use lazyrand;
use mnist_reader::MnistReader;
/// 決定木のノードを表します。
enum Node {
Leaf { prediction: u8 },
Decision {
feature_index: usize,
threshold: f32,
@kujirahand
kujirahand / lifegame.html
Last active April 8, 2025 12:56
lifegame using PyScript
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1" />
<!-- PyScriptのライブラリを取り込み -->
<link rel="stylesheet" href="https://pyscript.net/releases/2025.3.1/core.css">
<script type="module" src="https://pyscript.net/releases/2025.3.1/core.js"></script>
<title>PyScriptでライフゲーム</title>
</head>
@kujirahand
kujirahand / sepia_noise.py
Created March 16, 2025 00:52
ノイズ付き画像セピアフィルタ
from random import randint
from PIL import Image, ImageEnhance, ImageOps, ImageFilter, ImageDraw
from pillow_heif import register_heif_opener
import TkEasyGUI as eg
# HEICが読めるように登録
register_heif_opener()
# 画像オブジェクトにセピアフィルタを適用する
@kujirahand
kujirahand / image2aa__main.rs
Last active March 11, 2025 00:15
画像をアスキーアートに変換するツール
use image::{GenericImageView, imageops::FilterType};
use std::fs;
use std::env;
// 画素に対応するASCII文字を指定
const ASCII_CHARS: &[u8] = b"@#%8&o*=+-:. ";
// RGB値を256色ANSIカラーコードに変換
fn rgb_to_ansi256(r: u8, g: u8, b: u8) -> u8 {
let r_idx = (r as u16 * 5 / 255) as u8;
@kujirahand
kujirahand / munou__src__main.rs
Last active February 2, 2025 02:49
Rustで作ったマルコフ連載を利用した人工無能
use std::collections::HashMap;
use std::fs;
use regex::Regex;
use vibrato::{Dictionary, Tokenizer};
use lazyrand;
use std::io::{self, Write};
// 特殊な単語IDを定義
static TOP_WORD_ID: isize = 0;
static END_WORD_ID: isize = 1;
@kujirahand
kujirahand / send.py
Created January 8, 2025 14:42
Gmailでプログラムと同じフォルダにあるファイルをメール送信するプログラム
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from glob import glob
# Gmailのアカウント情報を環境変数から読み取る --- (*1)
GMAIL_ACCOUNT = os.environ['GMAIL_ACCOUNT']
GMAIL_PASSWORD = os.environ['GMAIL_PASSWORD']
EMAIL_UPLOAD_TO = os.environ["EMAIL_UPLOAD_TO"]
@kujirahand
kujirahand / sha256_src_main.rs
Last active December 29, 2024 12:59
SHA-256のプログラム
// メイン処理
fn main() {
println!("{}", digest_to_hex(&sha256(b"hello")));
println!("{}", digest_to_hex(&sha256(b"world")));
println!("{}", digest_to_hex(&sha256(b"cat")));
println!("{}", digest_to_hex(&sha256(b"dog")));
}
// ラウンド定数の配列の初期値
const K: [u32; 64] = [
@kujirahand
kujirahand / excel_calendar__main.go
Created December 11, 2024 12:44
カレンダーをExcelに書き込むプログラム
package main
import (
"fmt"
"log"
"time"
"github.com/xuri/excelize/v2"
)
@kujirahand
kujirahand / ChatGPTUnit.pas
Last active December 4, 2024 02:19
FPC for ChatGPT Simple Unit (for Windows) プロジェクト全体はこちら→ https://kujirahand.com/blog/go.php?822
unit ChatGPTUnit;
{$mode ObjFPC}{$H+}
interface
uses
fpjson, jsonparser, Process, Classes, SysUtils;
function CallChatGPTAPI(const Prompt: string): string;
@kujirahand
kujirahand / zipfind__src__main.rs
Created October 9, 2024 15:08
バイナリ郵便番号データを基にして住所を表示するプログラム
use std::io::Read;
use std::fs::File;
use std::io::{self, BufRead};
use std::path::Path;
// 優美番号データファイルの宣言 --- (*1)
const FILE_CODE: &str = "zipcode.bin"; // 郵便番号情報のデータ
const KEN_TXT: &str = "ken.txt"; // 都道府県
const SHI_TXT: &str = "shi.txt"; // 市区町村
const CHO_TXT: &str = "cho.txt"; // 町域
fn main() {