概要 今回はプログラミング言語の Forth について書きます。 この記事は刺身タンポポ同好会のアドベントカレンダーの記事です。 刺身タンポポ同好会についてはこちら 昨日の記事はこちら 明日の記事はこちら 目次 概要 目次 Forth とは 所感 命令一覧 AtCode…
初めに この記事は普通の問題解説ではないので、普通の解説が見たい方は別の方の記事をご覧ください。 目次 初めに 目次 概要 解法 時針と分針の角度を求める 三角関数 (cos) の実装 平方根を求める ところで精度は足りますか? 実際の提出 あとがき 概要 今…
初めに 今回は Brainf*ck Advent Calendar 2019 の 16 日目の記事です。 adventar.org 前日の記事はこちら 明日の記事はこちら 目次 初めに 目次 概要 機能紹介 エディタ機能 シンタックスハイライト [ 入力時の ] の補完 対応する [,] の表示 自動インデン…
初めに 今回は Brainf*ck Advent Calendar 2019 の 13 日目の記事です。 adventar.org 前日の記事はこちら 明日の記事はこちら 目次 初めに 目次 概要 無限ループ 入力の読み取り 概要 コード _ かどうかの確認 概要 コード コマをひっくり返す サーチ方向の…
初めに 今回は Brainf*ck Advent Calendar 2019 の 10 日目の記事です。 adventar.org 前日の記事はこちら 明日の記事はこちら 目次 初めに 目次 概要 メモリ配置 盤面情報 入力情報および石情報 固定文字列 メモリ図 初期セットアップ フィールドの作成 コ…
初めに 今回は Brainf*ck Advent Calendar 2019 の 7 日目の記事です。 adventar.org 前日の記事はこちら 明日の記事はこちら 目次 初めに 目次 概要 配列の表現方法 本記事での制約 コードとメモリ遷移 方法1 方法2 方法3 方法4 ざっくり解説 計算量 空…
初めに 今回は Brainf*ck Advent Calendar 2019 の 6 日目の記事です。 adventar.org 前日の記事はこちら 明日の記事はこちら 誘ってくださった主催者さんには感謝しています。 目次 初めに 目次 概要 ループ構造の逆転 問題 解答コード 解説 二つのループ b…
概要 今回は非破壊の if の説明をします。 コード的には重要ではないですが、考え方は重要なので記事を一個使って説明します。 本当は大小比較を説明したかったんですけど、そのためには非破壊 if の説明とその考え方を説明しないといけないことに気が付いた…
概要 有志の方がAtCoderのバーチャルコントテストで brainfuck 向けの問題でバチャコンを開いてくれたのでそれに参加しました。 全部まとめて提出用としたところ、ペナを出しました。恥ずかしいです。 というわけで、問題の解説を行っていきたいと思います。…
概要 今回はマルチバイト変数(多バイト長整数)について書いていきます。 簡単に言うと、256 の数値を扱う方法です。 本当はもっと後に書く予定でしたが、知りたいという方がいたので前倒しで書きました。 今は閑話としてカテゴライズして、後でもう一度ま…
概要 今回は文字の入力に関して説明します。数値の入力ではないです。ごめんなさい。 目次 概要 目次 文字列読み込み 1 行読み込み スペースまでの読み取り 改行またはスペースまでの読み取り 問題例 次回 記事一覧 文字列読み込み 1 行読み込み brainfuck …
概要 今回は、if 文とそれに伴う bool 演算について解説します。等価、不等価も説明しますが、大小比較に関しては別記事で書こうと思っています。 目次 概要 目次 if 文 if 文 if-else 文 bool 演算 bool 化 ((bool)value) 真理値反転 (!value) 不等価演算 (…
概要 brainfuck を書く上で基本となる、値の移動、値のコピー、値の初期化および、準非破壊な繰り返し文の説明をします。 目次 概要 目次 構文解説 値の移動 値のコピー 値の初期化 準非破壊ループ 問題例 次回 記事一覧 構文解説 値の移動 brainfuck では、…
今回の主軸 今回は、文字出力の行い方を解説します。 プログラミング的には後でもいいんですけど、AtCoderをやるうえでは、かなり重要となるので、初めに説明しておきます。 また文字出力に必要となるループ文と定数生成の説明をしたいと思います。 目次 今…
はじめに この記事はあくまで brainfuck 入門であり、プログラミング入門ではありません。 今回は言語仕様編ということで、brainfuck の言語仕様および、解説で使用する環境の話をします。 すでに AtCoder で brainfcuk を書いてるような人は見なくてもいい…
今回の主軸 今回は、 brainfuck の言語仕様と環境依存の挙動について解説します。 目次 今回の主軸 目次 brainfuck とは Hello World. 概要 予約語 メモリ仕様 未定義動作 実行環境による裁量 今回の記事に用いる実行環境 実行環境例 問題例 次回 記事一覧 b…
先日(2019/09/21 )のAGC083にてついに茶色になることができました。 AtCoder界隈では色変したらブログを書く慣習があるようなので書いてみます。 茶色でこの記事を書くのは自分ぐらいだと思います。 茶色になったわけですが、使用言語はbrainf*ckです。rated…
初めに AGC038が終わりました。Aのみの1完ではありましたが700点はbrainf*ckでは無理なので、満足いく結果です。 ABC140二続き解説記事を書きました。 ABC141?いえ、知らない子ですねぇ。 目次 初めに 目次 注意 A - 01 Matrix 概要と設計指針 概要とコード…
初めに ABC140が終わりました。自分は残念ながらABCの3完でレートは下がりました。 (といっても、元が低いので、そこまで低くはなっていないですが。 コンテスト終了して8分ほどあとにDをACしました。時間内に出せていたらと思うと悔しいです。 せっかく時…
前編では、配列の作成まで書きましたが、 後編では、それらの値がすべて等しいかどうかを判別していきます。 前編を読んでない人は先にそちらを読んでください。 一般の言語だと、配列の先頭から見て、0でなければ記録されている数と一緒かどうかを見ていっ…
こんにちは、先日はにーまさん主催の初心者向け競プロ合宿CPSCOに参加してきました。 主催してくれたはにーまさんには感謝しています。 細かいSessionの話とかはほかの人に任せて、今回はSession1のB問題に関して書いていきます。 使用言語はBreakbrainf*ck…
先日投稿した、響ちゃんスイッチですが、今日はそのメニューデータの管理方法について、自分のメモとして記事にしておきます。 わかりやすいようにとか、機能説明とか特にしないので、見る意味は皆無です。 また、後でメモリ管理に関しては仕様を変更する予…
皆さん、艦これは好きですか。 皆さん、駆逐艦は好きですか。 皆さん、六駆は好きですか。 皆さん、銀髪幼女は好きですか。 皆さん、響ちゃんは好きですか。 私は好きです!(響ちゃんが) 響ちゃんが好きで、ボタンを押すと響ちゃんのボイスが流れる装置を…
Brainf*ckでオセロ(Reversi)プログラム書いたので、メモ程度に投稿。 詳しい解説は気が向けばするかも… 一応,オーバーフロー、アンダーフローは反対側に出る。 標準入力はEnterも受け取ることにしています。 境界値判定は行っていないので、入力値がおかし…
皆さん、デリゲード使ってますか? デリゲードを使ってNullReferenceExceptionを出したことがあるのは私だけではないと思います。 nullチェックはしっかりしましょう。 ここでnullチェックをする上で、重要となるのがスレッドセーフかどうか。という話になり…
みなさんこんにちは、こんなしょうもない記事をもてくれる人は片手で数えれるほどしかいないと思います。 そんなみなさん、こんな疑問を抱いたことはないですか? 「浮動小数点型の中で最小の値ってなんだろう?」 と。 ないですかね? 私はないです。 いや、…
概要 自分でプログラム書いていた時にふと、「これはGroupByでうまく実装できないのか」という疑問が発生して、いろいろ調べた後、 Twitterで「GroupByについてまとめようかなぁ」とつぶやいたところ、「はよ」と脅されたために作成しました。GroupByのオー…
何を思ったかよくわからない言語に手を出してしまった。 とりあえず練習がてら素数を求めるプログラムを書いてみる。 出来上がったのがこちら う~ん気持ち悪い。 言語はBefunge。この言語の特徴は実行方向が4方向に変わること。^v<>で単純な方向転換。|が縦…
プログラミング触り始めの頃、if文の{}は欠かさず書いてたけど、if内の命令文が1つなら{}を省略できるわけで、 if (i == 0) a = 10; else if (i == 1) a = 4; else a = 5;と書ける。ここでちょっとした疑問。elseとifの間にスペースを入れるわけだけど、else…