stackprobe7s_memo

何処にも披露する見込みの無いものを書き落とす場所

2019-10-01から1ヶ月間の記事一覧

RPGのダンジョンマップを自動生成する(C#)

ダンジョンマップらしきもののときはマップが孤立した空間だらけでそのまま使えなかった。 なので、ちゃんとした迷路に仕立ててみる。 MakeLikeADungeonMap() の pattern == 24 を使用する。 全ての空間を繋げて孤立を無くし、ついでにスタート地点とゴール…

THE MAKING 290 氷砂糖ができるまで で気になったこと

www.youtube.com 先日この動画を観て 11:44 からの部分、バケットの数 (はかりの数) の 14 という半端な数がちょっと気になった。 バケットの数が少なすぎれば 1kg になりにくいし、多すぎれば過剰設備となる。 きっと丁度良い数なのだろう。 シミュレーショ…

【機械学習・ディープラーニング】多層パーセプトロン(教師あり学習)の実装 (C#)

数学素人が自分なりに腑に落ちるところまで辿り着いた内容を吐き出したものです。 専門家に言わせれば、おかしい表現や用語があるかもしれませんが、根本の考え方は抑えたつもりです。 間違っているところがあれば、指摘していただけると幸いです。 昨年の今…

第25回 算数オリンピックファイナル 第3問 を C# で

少し前に問題文をどこかのまとめで見かけたので 頑張れば Linq だけ使って1文で書けるのかもしれない。と思った。 using System; using System.Collections.Generic; using System.Linq; public class Hello { public static void Main() { // 1~13までの数…

はてなブログでコードの右上に言語名を表示する

割と力技 テーマによっては上手く表示されないかもしれない。 このテーマでしか試していない。 やり方 設定 ⇒ デザイン ⇒ [スパナのアイコン] ⇒ フッタ に以下を貼り付ける。 <script> function PutLangLabels() { var pres = document.getElementsByTagName("pre");…

RPGのダンジョンマップらしきものを自動生成する(C#)

フィールドマップのときとほとんど同じ。 単純なアルゴリズムの割に、それなりに色々なマップができる。 MakeLikeADungeonMap() public static void MakeLikeADungeonMap(int pattern) // pattern: 0 ~ 1023 { const int w = 100; // マップの幅 const int …

RPGのフィールドマップらしきものを自動生成する(C#)

単純なアルゴリズムの割に、それなりのマップができる。 2値(海と陸のみ) MakeLikeAFieldMap() public static void MakeLikeAFieldMap() { const int w = 100; // マップの幅 const int h = 100; // マップの高さ Random rand = new Random(); int[,] map = …

ミューテックスだけを使ってプロセス間通信を行う(C#)

説明 特徴 ミューテックスだけを使ってプロセス間通信できるんじゃね?と思って試してみたかっただけの代物。 ソケットとか共有メモリとかファイルとか一切使えないけど「ミューテックス」だけは使えるという特殊な状況下でプロセス間通信したい時に使えるか…

名前付きイベントだけを使ってプロセス間通信を行う(C#)

説明 特徴 名前付きイベントだけを使ってプロセス間通信できるんじゃね?と思って試してみたかっただけの代物。 ソケットとか共有メモリとかファイルとか一切使えないけど「名前付きイベント」だけは使えるという特殊な状況下でプロセス間通信したい時に使え…

ナップサック問題(C#)

入力 public class Item // アイテム { public int Value; // このアイテムの価値 : 0 ~ 1,000,000 の範囲でランダムに生成 public int Weight; // このアイテムの重さ : 0 ~ 1,000 の範囲でランダムに生成 } public class Condition // 与えられた条件 { …

Brainfuck Interpreter

https://github.com/stackprobe/Annex/blob/master/Hatena/a20191018_Brainfuck/Brainfuck.c #include "C:\Factory\Common\all.h" static autoList_t *Memory; static uint Ptr; static uint Increment_Ptr(void) { errorCase(Ptr == UINTMAX); // ? Overflo…

ビット操作

一番下の立ち上がっているビットを得る uint LowestBit(uint value) { return value & ~value + 1; } // - - - 動作確認用 uint LowestBit_TEST(uint value) { int bit; for(bit = 0; bit < 32; bit++) if(value & 1u << bit) return 1u << bit; return 0u; …

再帰的探索の再起呼び出(し|さない)

再起呼び出し // protected bool IsInvalid(int index); : 0 ~ (index - 1) の element の並びが間違っていれば ture そうでなければ false // protected bool IsEnd(int index); : 0 ~ (index - 1) の element の並びで完成していれば true そうでなけれ…

swap (int a, int b)

int a = rand(); // any value int b = rand(); // any value // ... { int tmp = a; a = b; b = tmp; } { a ^= b; b ^= a; a ^= b; } { a -= b; b += a; a = b - a; } { a += b; b = a - b; a -= b; } { a = b - a; b -= a; a += b; } /* requires: 1 <= a …

FizzBuzzいろいろ

t0001.c #include <stdio.h> int main() { int n; for(n = 1; n <= 100; n++) { if(n % 15 == 0) printf("FizzBuzz\n"); else if(n % 3 == 0) printf("Fizz\n"); else if(n % 5 == 0) printf("Buzz\n"); else printf("%d\n", n); } } t0002.c #include <stdio.h> int main() { </stdio.h></stdio.h>…

よくある素数列挙サンプルコード集

t0001.c 愚直に素数を列挙する。 範囲 [2, INT_MAX) #include <stdio.h> #include <limits.h> int main() { int c; int d; for(c = 2; c < INT_MAX; c++) { for(d = 2; d < c; d++) if(c % d == 0) goto next; printf("%d\n", c); next:; } } t0002.c 愚直に素数を列挙する。そ</limits.h></stdio.h>…

Test()

Test() { Test(); }