乱数生成「R_generator」(無料ソフト)

はじめに プログラムの勉強の一環で作成した乱数生成ソフト。無料で使用できる。 (ぶっちゃけ、素人が作ったソフトなのでお金をとっても仕方がない。その上、勉強すればすぐに作れるソフトなので……) 昔から、こういう安っぽいソフトを一度作ってみたかった(笑) 作った手順はVisual Studio を使ってフリーソフトを作る(アイコンの調達)を参照 「R_generator」でできること(特徴) -2,147,483,648~2,147,483,647(intの範囲)での乱数を得ることができる(理論的には)。 重複のない乱数と重複のある乱数の2パターンの乱数を得られる。 発生させる乱数の数を指定できる。重複のない乱数の場合は、intの範囲で数を指定。重複のある乱数の場合、longの範囲まで指定... 続きを読む

~プログラミングを勉強してみませんか?~

TechAcademy [テックアカデミー] 無料の体験講座が用意されているので、気軽に体験できます。

※私(サイト主)も無料体験講座を実際に受けてみました(→感想)

C#で重複のない乱数の生成(Visual Studio)

はじめに この記事では、Visual Studio2015でダブりのない乱数をc#で作る方法を紹介する。 ついでに、生成した乱数をテキストファイルに出力する機能もついている 考え方 乱数のシャッフルのされ方には歴史がある。 Wiki:フィッシャー – イェーツのシャッフル は非常に参考になる。 Wikiでは、フィッシャー – イェーツ(Fisher-Yate)とダステンフェルドのアルゴリズムを区別して扱っている。フィッシャー – イェーツ(Fisher-Yate)が当初考えた方法だと計算量がO(n2)だが、ダステンフェルドのアルゴリズムでは、O(n)と少なく済む。 ※多くのサイトで、ダステンフェルドのアルゴリズムのことをFisher-Yate 法と呼んでい... 続きを読む

賭けシミュレーションのコードの実行の仕方

はじめに ネット上では、様々なプログラムのコードが転がっている。だが、そのままコピペしてもうまく動かないというのはよくある。 例えば、言語の違い。 C++で書かれているプログラムをC言語でコンパイルしようとても動かなかったりする。(C++とCは割と共通している部分があるので、すんなり通ることもあるが……) それ以上に、動かない原因となっているのは、コンパイラの違いだろう。つまり、自分でコードをコンパイルしようとしている環境と、サイト上にあるコードがコンパイルされた環境の違いだ。 この記事では、このサイトの賭けシミュレーションに載せているプログラムを動かしてかたについて述べておく。 ※目次用の記事:ギャンブルの賭け方の種類をまとめてみた マーチンゲール法(2倍賭け)の破綻までのシミュレーシ... 続きを読む

MinGWをインストールしたけど使い方がわからない人へ

はじめに この記事は、MinGWをインストールしたけど使い方がわからないという人向けの記事。(MinGWのダウンロードの仕方はネット上で探せばゴロゴロでてくるので、わざわざ書かなくてもいいかなと思ってスキップしている) 個人的に使っていたスタイルはMinGW+Clink+TeraPadの組み合わせ。 ClinkとTeraPadについても後半説明 ※現在サイト主のOSはWindows10である。以下の記事は基本的にWindowsユーザー向けである。 MinGW MinGWはWindowsでC( C++)言語をgcc(g++)でコンパイルしたい場合に必要。 ダウンロードする場合は以下のサイトを参考するとわかりやすい :MinGW(gcc) の Windows へのインストールと使い方 パスの... 続きを読む

C#でファイルを開いて結果の確認(Visual Studio)

はじめに C#でのファイルの出力した後、すぐにファイルを開いて中身が見ることができるコードを書く ※C#でファイルの出力(Visual Studio)という記事の続き ※この記事を書いている人間はc#の初心者で、備忘録用として書いている。プログラムはVisual Studio 2015で行った。 手順 Visual Studioを立ち上げる Visual Studioでは、「ファイル」→「新規作成」→「プロジェクト」→「WindowsFormアプリケーション」で作成。 ファイルの名前は任意で問題ない(ここでは「WindowsFormsApplication1」) 「Form1.cs」をクリックする。 その後、ツールボックスを開いて、「Button」と「TextBox」を追加する。 ※「ツール... 続きを読む

C#でファイルの出力(Visual Studio)

はじめに C#でのファイルの出力の仕方を紹介する ※この記事を書いている人間はc#の初心者で、備忘録用として書いている。プログラムはVisual Studio 2015で行った。 手順 Visual Studioを立ち上げる Visual Studioでは、「ファイル」→「新規作成」→「プロジェクト」→「コンソールアプリケーション」で作成。 ファイルの名前は任意で問題ない(ここでは「ConsoleApplication1」) 次のようにコードを書く。     この部分をきちんと書き足さないとうまく動かないので注意 「ctrl+F5」でプログラムを実行する。 おそらく、コンソールが立ち上がる。その場合は「Enter」ボタンを押す。 出力されるファイルは「Console... 続きを読む

C#で乱数を生成する際、同じ数しか出ないという事態に直面

はじめに C#で、乱数を発生させようとしても、同じ数字が出力される。 なぜ、ランダムに乱数が発生してくれない? ※この記事を書いている人間はC#の初心者なので、以下で書いていること全て正しいという保証はできない ※Visual Studio 2015でプログラムを動かしている C#での乱数発生 失敗例 0~9までの乱数を発生させるを100回行うプログラム   結果   常に同じ数字(数字の6)が出力される ちなみに繰り返しを100回から2000回に増やすと以下のような結果となった。 c#の乱数は、時間を参照しているらしい。(参照している時間は、たぶん、PCの起動時間) 乱数が参照している時間が変化するよりも早く、forのループ文が回ると、その間の結果は変わらない... 続きを読む

マーチンゲール法で2倍儲かる確率を検証(c++/c言語)

はじめに ※目次用の記事:ギャンブルの賭け方の種類をまとめてみた ここ最近、マーチンゲール法などの様々なシミュレーションをしている。 どれだけ破綻しやすいか?結局賭けをして儲けることができるか?などの検証を、プログラムを通して数値的かつ定量的に検証している そんなある日、「手持ちのお金が1000でスタートして1100や2000に達成する確率ってどんなもんなの?」というコメントを頂いた。 そんなに難しくなさそうなので、この記事では、どんなもんなのか確かめてみる マーチンゲール法とは? マーチンゲール法とは、負けたら、勝つまで、賭ける金額を2倍にしていく手法。もしも、勝ったら、賭ける金額は1に戻す。 詳しくは、以下の記事を参照 マーチンゲール法(2倍賭け)の破綻までのシミュレーション グランマ... 続きを読む

イーストコーストプログレッション法の検証(c++/c言語)

はじめに ※目次用の記事:ギャンブルの賭け方の種類をまとめてみた この記事では、イーストコーストプログレッション法の紹介と、そのシミュレーション結果を示す イーストコーストプログレッション法とは 連勝した時に、賭け金額を増やしていく手法 最小の賭け金額(例えば1)を自分で設定しておく 勝負の最初の賭け金額は1とする 勝った(連勝)場合: 1回目の賭け金額:1 勝てば、トータルで、1(元手)+1(利益) 2回目の賭け金額:1 勝てば、トータルで、1(元手)+2(利益) 3回目の賭け金額:3 ※これまで出た利益2を元手の1に加えると考える 勝てば、トータルで、3(元手)+3(利益) 4回目の賭け金額:4.5 ※3回目で出た利益である3を半分にして1.5を元手に、残りの1.5はプールする 勝てば、... 続きを読む

ウィナーズ投資法のシミュレーション(c++)

はじめに ※目次用の記事:ギャンブルの賭け方の種類をまとめてみた この記事では、ウィナーズ投資法の紹介と、そのシミュレーション結果を示す ウィナーズ投資法とは 最小の賭け金額(例えば1)を自分で設定しておく 負けた時に賭けた金額を覚えておくための数列を用意する ※最初は、勝負が始まっていないので数列の中身は空と考える。数列:{} 勝負の最初の賭け金額は1とする 負けた場合: 1回目負けた場合、数列の右側に数字の1を加える。数列:{1} 2回目の勝負のかけ金額も1とする 2回目も負けた場合(2連敗)、数列の右側に数字の1を加える。数列:{1,1} 3回目以降の賭け金額は(数列の左端)×2を使う。 負けた場合は、数列の右側に、賭けた金額を加える。 例えば、3回目も負けた場合、数列:{1... 続きを読む