プログラミング

パスワードハッシュ生成

Password Salt ハッシュ生成 async function digestMessage(message, salt) { const encoder = new TextEncoder(); const data = encoder.encode(message + salt); const hash = await window.crypto.subtle.digest('SHA-256', data); return hash; } async …

Codingame『HOURGlASS』

*1 問題 www.codingame.com 本当に問題なのは 「何言ってるのかよくわからん」が発生した。 あの説明で粒が減ったり落ちて溜まっていったりする仕組み理解できる? ハァ?って言ってる猫ミームレベルで私には無理だった。 結局ここを理解するのにだいぶ時間…

Codingame『SKYLINES』

*1 問題 www.codingame.com コード using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard inpu…

C#を使ってコンソールで動くスネークゲーム作成

www.youtube.com こんなのを作った。 突発性難聴は継続中。貰ったお薬飲んでるものの効いてるのか効いてないのか。 あと、片耳がほぼ聞こえないのに慣れてきて人間の適応力って凄いと感心した。 (余計な情報) 実行ファイル コード Sceneクラス 入力停止処理 …

p5.jsでスネークゲーム作成

突発性難聴で左耳が死んだ(余計な情報) p5.jsを初めて使うのでスネークゲームを作ってみた。 p5.js p5js.org コード let snake; let apple; const canvasSizeWidth = 400; const canvasSizeHeight = 400; const frameRateValue = 10; const cell = 20; let c…

JavaScriptでコラッツ予想

コラッツ予想をJavaScriptで作ってみた。 JavaScriptとか久しぶりに触るから結構忘れてて困った困った。 コラッツ予想 ある値に対して次の操作をくり返しおこなうと1になる、という予想。 数 n が偶数ならば n / 2 数 n が奇数ならば 3 × n + 1 言ってること…

C#で順列を求める

組み合わせをやったなら順列もやらんとならんのでやった。 順列の結果だけ見てアルゴリズム自体は自分で考えるので作るのに4日かかった。 コード using System.Numerics; public partial class MathPlus { /// <summary> /// 順列クラス /// </summary> public class Permutatio…

C#で組み合わせのパターンを求める(更新版)

pongeponge.hatenablog.jp 前回、説明にもならない説明をポチポチ書いてて「elementsいらんくない?」と思ったので省いた。 using System.Numerics; public partial class MathPlus { public class Combination { /// <summary> /// 要素の個数 /// </summary> private int _n; …

C#で組み合わせのパターンを求める

前回は組み合わせの総数を求めた。 今回は組み合わせのパターンを求める。 いやー、yield return 便利ですね。 組み合わせ 多分中学くらいで学ぶやつ。 例題 例として「1から4が書かれた4枚のカードがある。3枚の組み合わせを全部書き出しなさい」という問題…

C#で組み合わせを求める

いわゆるnCk 「色違いの5個のボールが袋に入っている。その袋から3つ取り出す場合の組み合わせの数を求めよ」 という中学数学に出てきそうな問題を解くためのやつ。 表記としては5C3と書く。 計算 5C3では次のようになる。 5C3 = (5×4×3)/(3×2×1) = 10 nCk =…

C#で総乗を求める

総乗を求めたかったので作った。 総乗とは ja.wikipedia.org 総和が全部の値を足し算するように、総乗は全部の値を掛け算する。 要はそれだけ。例えば1から10までの総乗をPI(1,5)と表現する。 この場合、実際の計算は次のようになる。PI(1,5) = 1×2×3×4×5 = …

ハッシュ値を計算する

画像とはハッシュ以外に何の関係もありません ちょっとしたSHA256のハッシュ値が欲しかった 使うだけならすごく簡単なので便利。 使用 こんなふうに書いて実行。 ハッシュ値とは e-words.jp SHA-256とは e-words.jp ハッシュドポテトとは ja.wikipedia.org H…

Project Euler : Problem 55 『Lychrel numbers』

問題 projecteuler.net 日本語訳→http://www.odz.sakura.ne.jp/projecteuler/index.php?Problem+55 総当たりでいいんじゃない? しばらく考えていたが、10000以下を調べる程度なら総当たりで十分だと思った。 コード using System; using System.Linq; using…

Project Euler : Problem 52 『Permuted multiples』

問題 projecteuler.net 日本語訳→http://www.odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2052 6倍した時桁上がりしない最上位桁 6倍した時に1倍と同じ数字が使われているということは、最上位桁が桁上がりしない事と同じ意味。 仮に最…

合同数を求めようと思った

tsujimotter.hatenablog.com この記事を読んで合同数を求めてみようと思った。 ja.wikipedia.org Wikipediaをさらりと読んで参考にせずぺぺっと書いて動かしてみた コード(C#) using System; using System.Collections.Generic; namespace ConsoleApp2 { cla…

Codingame『1D Spreadsheet』

問題 www.codingame.com 簡単に言うと 1次元の命令付きセルを与えてあげるから、全部のセルの値を求めるプログラム組んでね。 ということ。 イメージとしては [ ] [ ] [ ] [ ] [ ] [ ] …… こういう箱(セル)がいっぱいあって [命令0] [命令1] [命令2] [命令3]…

Project Euler : Problem 50 『Consecutive prime sum』

問題 projecteuler.net 日本語訳→http://www.odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2050 長い素数列から調べていく 最初に素数を100万まで求めておく。 その後、2から順番に素数を足していって100万を越える手前で止める。 例えば…

Project Euler : Problem 49 『Prime permutations』

問題 projecteuler.net 日本語訳→http://www.odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2049 4桁の素数を全部出します 一瞬です 等差数列の素数を選びます 3つの素数Pm, Pn, Poが公差dの関係になってるとのことなので、 素数Pmと素数P…

Project Euler : Problem 48 『Self powers』

問題 projecteuler.net 日本語訳→http://www.odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2048 本当は素因数分解とかするんだろう だが考えるのがめんどくさくなったので力技だ! とりあえず下10桁だけ分かればいいので計算ごとにmod100…

Project Euler : Problem 47 『Distinct primes factors』

問題 projecteuler.net 日本語訳→http://www.odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2047 力技で解こうぜ(ガンガンいこうぜ風に) 要は順番に素因数分解していって素因数4種が4回連続すればいい。 ただ、最小の素因数4種の数は2×3×5…

Project Euler : Problem 46 『Goldbach's other conjecture』

問題 projecteuler.net 日本語訳→Problem 46 - PukiWiki 25の場合 例にあるように25の場合は となっている。 25を奇合成数、7を素数、その他を2×平方数と置くと このように書ける。 これが成立しない最小の奇合成数を探すということで、 0)ある奇合成数Numを…

Visual Studio CodeでC#開発環境を作る

せっかくなのでVSCodeにC#開発環境を作った。 1.Visual Studio Codeをインストール code.visualstudio.com ここからVSCodeをダウンロードしてインストール。 2. .NET Coreをインストール www.microsoft.com ここから.NET Coreをダウンロードしてインストール…

Project Euler : Problem 45 『Triangular, pentagonal, and hexagonal』

問題 projecteuler.net 日本語訳→Problem 45 - PukiWiki 3つの数が揃う時を探す 3つの数をいっぺんに比較して調べようとするとややこしいので、 1)三角数と五角数が同じ数字になる項を探す 2)見つかったら五角数と六角数が同じ数字になる項を探す 3-1)五角数…

Project Euler : Problem 44 『Pentagon numbers』

問題 projecteuler.net 日本語訳→Problem 44 - PukiWiki 最小値を求める? 最初読んだ時、どうやって最小値だと証明したらいいのか謎だった。 一晩考えた結果こうなった。 本当は一度得た差未満を全部調べた方がいいんだろうけど、条件に合うペンタンゴンナ…

Project Euler : Problem 43 『Sub-string divisibility』

問題 projecteuler.net 日本語訳→Problem 43 - PukiWiki 大まかな流れ 開始 → パンデジタル数の生成 → パンデジタル数の尻から3文字切り取る(A) → 位置に対応した素数で割る(B) → A-Bを繰り返して部分文字列被整除性数であれば総和に加える → 総和を出力する…

Project Euler : Problem 42 『Coded triangle numbers』

問題 projecteuler.net 日本語訳→Problem 42 - PukiWiki 大まかな流れ 開始 → ファイルから読み込み → 単語ごとに分解 → 「単語の値」を計算 → 「単語の値」が三角数かどうか判定 → 三角数になってる単語の数をカウント → カウントを出力 大体こんな感じ コ…

Project Euler : Problem 41 『Pandigital prime』

問題 projecteuler.net 日本語訳→Problem 41 - PukiWiki パンデジタル数の生成 パンデジタル数の生成に苦労した。 要は組み合わせの問題なんだけど、 どうしてもほにゃらら.Next()で次の値が出てくるようにしたかった。 なぜそうしたかったのか未だに分から…

Project Euler : Problem 40 『Champernowne's constant』

問題 projecteuler.net 日本語→Problem 40 - PukiWiki もうちょっと短縮できそうな気がする 桁ごとの文字数を得る部分とか、その後の数字を調べる部分とか。 コード using System; using System.Diagnostics; namespace Problem40 { class Program { static …

Project Euler : Problem 39 『Integer right triangles』

問題 projecteuler.net 日本語→Problem 39 - PukiWiki 周長から斜辺以外の1辺を求める 直角三角形の各辺をa,b,cとする(cは斜辺)、周長をpとすると、 (1) となる。 斜辺cはピタゴラスの定理により よって(1)は (2) となる。 pとaの値が決まっていてbを求めた…

Project Euler : Problem 38 『Pandigital multiples』

問題 projecteuler.net 日本語→Problem 38 - PukiWiki 途中まで勘違いしてた 適当な数がパンデジタル数かどうか調べるものを作ってた。 連結積でパンデジタル数を作る方法を聞かれてるんだったw コード using System; using System.Diagnostics; using Syst…