(2019年4月10日)
■使用ソフト
・Visual Studio Community 2019
■言語
・C/C++
■Windows SDK バージョン
・10.0.17763.0
※Windows SDK バージョンの変更方法
■手順
以下の2種類の方法を記載
rand()
std::mt19937
<rand()>
1.基本的には以下の流れ参照
【C++】 メッセージボックスの作成
2.C++ファイル(.cpp)を以下のとおり変更する。
#pragma comment(lib,"winmm.lib")
#include <windows.h>
#include <wchar.h>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
int iMin = 1;
int iMax = 6;
srand((unsigned int)timeGetTime());
swprintf(wcText, 256, L"%d", iMin+(int)(rand()*(iMax-iMin+1)/(1+RAND_MAX)));
MessageBox(NULL, wcText, L"指定範囲乱数の生成", MB_OK);
return 0;
}
#include <windows.h>
#include <wchar.h>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
int iMin = 1;
int iMax = 6;
srand((unsigned int)timeGetTime());
swprintf(wcText, 256, L"%d", iMin+(int)(rand()*(iMax-iMin+1)/(1+RAND_MAX)));
MessageBox(NULL, wcText, L"指定範囲乱数の生成", MB_OK);
return 0;
}
※timeGetTime()を使用するために#pragma comment(lib,"winmm.lib")が必要
※最小値+(int)(rand()*(最大値-最小値+1)/(1+RAND_MAX))は最小値から最大値までの
乱数を求める式
3.1から6までの乱数が表示される。
<std::mt19937>
1.基本的には以下の流れ参照
【C++】 メッセージボックスの作成
2.C++ファイル(.cpp)を以下のとおり変更する。
#include <windows.h>
#include <wchar.h>
#include <random>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
int iMin = 1;
int iMax = 6;
std::random_device seed;
std::mt19937 random(seed());
std::uniform_int_distribution<> number(iMin, iMax);
swprintf(wcText, 256, L"%lu", number(random));
MessageBox(NULL, wcText, L"指定範囲乱数の生成", MB_OK);
return 0;
}
#include <wchar.h>
#include <random>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
int iMin = 1;
int iMax = 6;
std::random_device seed;
std::mt19937 random(seed());
std::uniform_int_distribution<> number(iMin, iMax);
swprintf(wcText, 256, L"%lu", number(random));
MessageBox(NULL, wcText, L"指定範囲乱数の生成", MB_OK);
return 0;
}
※std::random_device、std::mt19937、std::uniform_int_distribution
を使用するために#include <random>が必要
3.1から6までの乱数が表示される。
0 件のコメント:
コメントを投稿