プログラミング
こんにちは。前回の記事↓では、後退解析の結果を深堀してみました。 smooth-pudding.hatenablog.comこの記事の中で、両者が最適戦略を取った場合の局面のバリエーションを数えました。今回は、この最適戦略のルートを可視化してみます。なお今回の記事は以下…
こんにちは。前回の記事↓で行ったセカンドベストの解析結果を少し深堀します*1。 smooth-pudding.hatenablog.comこの記事は下記のアドベントカレンダーに参加しています。 adventar.org セカンドベストって何? 後退解析の結果をざっくり 最良のプレイングで…
こんにちは。 先日の記事でセカンドベストというボードゲームの局面数を数えました。その結果、気合を入れて解析していた Tokyo Doves よりもはるかに局面数が少なく、解析の難易度もさほど高くなさそうなことが分かりました。ということで、解析するコード…
タイトルの通りですが、Tokyo Doves の解析で使った Rust のコア部分を抽出して整理したものを crates.io に公開しました。URL は以下です。 https://crates.io/crates/tokyodoves使い方は上記ページにある Documentation のページに詳しめに書いたので、そ…
こんにちは。Rust の doctest まわりでひとつ問題回避に成功したので、メモとして残しておきます。 doctest でエラー発生 回避策を模索 解決編 うれしい副産物編 おまけ doctest でエラー発生 先ほど元気に Rust の開発をしていたら、doctest で以下のような…
こんにちは。Rust には参照カウント方式で複数の所有権を持たせるスマートポインタの Rc ("R"eference "C"ount) があります。 doc.rust-lang.org こいつのディープコピー、すなわち参照カウントが1で参照先が clone された状態のものを作りたい状況があった…
こんにちは。 Rust のイテレータまわりでちょっと手こずったので、後日のためのメモです。まずは次のコードを見てください: fn main() { let vec = vec![vec![0], vec![1, 2], vec![3, 4, 5]]; for sub_vec in vec.iter() { for x in sub_vec.iter() { print…
引き続き Tokyo Doves のシリーズです。今回は Tokyo Doves の実現可能局面数について見積もってみます。 実現可能局面数とは? 実現可能局面数とは、実際にゲームの進行で実現しうる盤面の状態すべての数です。参考までに他のボードゲームの実現可能局面数…
最近 Rust にハマりつつあるぷりんです。n 番煎じですが、Rust の文字列操作をまとめてみました。せっかくなので、個人的に一番親しみのある Python の構文と比較しながら見ていきます。 参考にしたサイト 文字/文字列の定義 それぞれの型の間の変換 文字列…
こんにちは。 ふとデコレータで遊びたくなったので書いてみました。 import datetime as dt from typing import Callable def time_limit(begin: dt.time, end: dt.time, default: Callable): def deco(func: Callable): def wrapper(*args, **kwargs): now …
こんにちは。いろいろ開発していると、システムに用いる定数を管理したいことがあります。ファイルに保存したりデータベースで管理したりすることも多いかと思いますが、今回は標準モジュール enum を使って Python ファイル内で Python から呼びやすい形で…
こんにちは。今回はイテラブルから特定の個数ずつ要素を取り出していく方法について語ろうと思います。「イテラブルとはなんぞや?」という方もいらっしゃると思いますが、ざっくりいうと for 文を使って要素を取り出せるようなオブジェクトです。 # こうい…
こんにちは。 タイトルが完全にネタバレですが、以下のコードを Rust で書き直してみたという記事です。 smooth-pudding.hatenablog.com上の記事と同様のロジックで「10万以下の素数の個数を数えるコード」をRust で書くとこんな感じになりました: fn main()…
こんにちは。日々プログラミングをしていると、ふとトランプカードが欲しくなるときがありますよね。そこで今回はいろんな方法で52枚のトランプカードを Python で表現する方法を紹介します。 前提 方法その1: 文字列を全列挙 方法その2: 各カードをタプルで…
こんにちは。 この記事は↓の続きです。 smooth-pudding.hatenablog.com キーの設定が面倒くさい 前回の記事で、キーを割り当ててフットスイッチを使えるようになりました。ただ、設定するには footswitch のバイナリのあるディレクトリに移動して 特定のコマ…
こんにちは。 最近 Amazon でこんな商品を買いました↓ www.amazon.co.jp 普通パソコンを操作するときって手で操作しますけど、足も使えるとなんかいい感じなんじゃね?という発想です。 インストール Ubuntu 向けのドライバインストール手順がない。。。 商…
こんにちは。 最近 LINE Bot を使ってトランプゲームを実装してみたので、そのやり方を紹介しようと思います。LINE Bot ですこし気の利いたものを作りたい方などに、実装の一例として参考になれば幸いです。 とりあえず遊んでみる 前提 設計概要 設計詳細 co…
~$ python3 Python 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import me >>> from today_events import * >>> print(me.is_awake()) True >>> import date…
こんにちは、ぷりんです。いつものようにネットサーフィン(死語)をしていると、functools.py という Python の標準モジュールがあることを知りました↓↓ docs.python.org 関数やクラスを定義するときに補助的に使うものっぽいですが、これがなかなかに「かゆ…
みなさん、へぇ〜ボタンをご存知でしょうか。15年ほど前にテレビで放映されていた「トリビアの泉」という雑学紹介番組で出てきたアイテムで、ゲストが「へぇ〜」と思った度合いに応じて押すボタンです。この番組は当時かなり人気で、へぇ〜ボタンのガチャガ…
なんかTLに流れてきたので自己流で書いてみました。 upper_bound は wikipedia の素数定理のページの結果を鵜呑みにしてます。 ja.wikipedia.orgベラボーにでかい n だと float の精度の問題でだめになると思いますが、そんな場合はどうせそもそも計算終わら…
すむーずぷりんです。 イテレータとは Python で for 文でどんどん要素出せるやつです。例えば for i in range(10): print(i) のときの range(10) みたいなやつです(正確には多分 range(10) に対応するイテレータオブジェクトの iter(range(10)) が生成され…
ついに twitterAPI を手に入れたのでbotを自動化しました。当 bot は晴れて自動化されました。毎時00分にガチ恋ツイートをRT/ふぁぼします。— ひさくんガチ恋bot (@hisa_gachikoi) January 5, 2021 前回の記事(下記)からの進捗に加えて、試行錯誤した点をま…
明けましておめでとうございます。 昨年末に思い立って初めたひさくんガチ恋botの自動化ですが、思ったより進捗したので共有します。 概要 twitterAPI の権限の取得 Python コード開発 Heroku 登録 結論 蛇足 概要 端的には以下の通りです: twitterAPI の権…
お久しぶりです。年の瀬ですね。ひさくんガチ恋bot(手動) というのをご存知でしょうか。とあるアカウントが「ガチ恋」したツイートをRTするというシンプルな手動bot(???)です。 ただ手動を続けるのは限界があるというもので、11月頭あたりから更新が止まって…
「黒峰問題」と界隈で呼ばれている問題をご存知でしょうか。具体的には以下の問題です。 次を満たす整数 をすべて求めよ。 黒峰氏( @kuromineharuto ) が twitter で解答を求めたところいろんな人が群がり、ぷりんが勝手に「黒峰問題」と呼び出したのが最初…
ずっと育てている Julia のコードを野良パッケージ化するために、Github に雛形を作ってみたので、メモを残しておきます。 自分で試す場合は、"mat-der-D" の部分や "SpectralMethodTools" の部分は適宜自分の環境に合わせて読み替えてください。目次 参考に…
Julia で CFD で使うスペクトル法ライブラリの開発のため、備忘録として FFTW.jl の fft, ifft, rfft, irfft の挙動をまとめておく。目次: はじめに インストール 関数 fft 関数 ifft 関数 rfft 関数 irfft はじめに Julia では簡単に fftw (高速フーリエ変…
とある集会で「Julia は速いぞ!」というアピールのために、Python と Julia で同じように書いているのに20倍以上速度の違うコードを見せました。ということを twitter で書いたところ反響があったので、ここに残しておきます。(もっと速いように書けるだろ…