算数

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 =…

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…

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を…

デジタル立方数問題

デジタル立方数問題 『数学の魔法の宝箱』にデジタル立方数という問題があった。 どういう問題かと言うと、こういう問題。 153という数は、各桁の3条の和に等しい。 13 + 53 + 33 = 1 + 125 + 27 = 153 同じ性質を持つ3桁の数が他に3つある。p.37 総当たりで…

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…

Project Euler : Problem 36 『Double-base palindromes』

問題 projecteuler.net 日本語訳→Problem 36 - PukiWiki 回文を作って検査する方が速いかな? 「どっちの進数でも先頭が0はダメ」とあるので、 奇数の回文を調べればいいということが分かる。 めんどくさかったので100万までの全部の奇数をチェックする感じ…

Project Euler : Problem 35 『Circular primes』

問題 projecteuler.net 日本語訳 → Problem 35 - PukiWiki 数字の巡回のさせ方 例えばnum = 123の場合 1. 2. 3. 4. これで123がひとつ右に巡回して312になった。 1~4を312でやると、またズレて231になります。 こんな感じでぐりぐり回していきます。 コード…

Project Euler : Problem 34 『Digit factorials』

問題 projecteuler.net 日本語訳→Problem 34 - PukiWiki 総当たりでええやん。でも上限は……? 総当たりでいいけど、上限と下限を決める必要がある。 下限は3で決まりなんだけど、上限は次のように考えて決めた。 まず、d桁の9(99とか9999とか)で作られる数n…

Project Euler : Problem 33 『Digit cancelling fractions』

問題 projecteuler.net 日本語 → Problem 33 - PukiWiki 特に難しくない 分数も、分子分母2桁総当たりで十分早い。 ただ、分数の表現と生成をもうちょっと工夫したらよかったかなと思わないでもない。 コード using System; using System.Diagnostics; using…

Project Euler : Problem 32 『Pandigital products』

ますだ製パン / Sig. 問題 projecteuler.net ↓問題文日本語訳 Problem 32 - PukiWiki 適合する式を探す 1~9までの値をまんべんなく使うということは、桁の制限があるということ。 例えば、1桁×1桁の場合、答えは9桁引く2桁(1桁+1桁)の7桁ないといけない。 …

Project Euler : Problem 31 『Coin sums』

Penny / slgckgc 問題 projecteuler.net ↓日本語訳サイト Problem 31 - PukiWiki 2ポンドの払い方 なんでポンドなのにLなんだろう……? これは特に考えずに再帰でいいですよね。 (という結論を出すまでに再帰以外で考えたけど式がめんどくさくなった) コード …

Project Euler : Problem 30 『Digit fifth powers』

Red Spotted Purple / DrPhotoMoto 問題 projecteuler.net ちょうどいいProject Euler問題文翻訳サイトがあったので、そっちにリンク張っておきます。 Problem 30 - PukiWiki 最大値をある程度予測する (含まれないけど)一番小さいのは\( 1 = 1^{5} \)。 じ…

Project Euler : Problem 29 『Distinct powers』

犬と猫 / kagawa_ymg 問題 projecteuler.net ab (2 ≤ a ≤ 100, 2 ≤ b ≤ 100) で作れる数は何個あるか? 値が大きいので極力計算しない方向で 100100なんか計算してられないし。 何より、100100までの数字をチェックしないといけないなんて悪夢だ…。 重複を見…