Commit 42c50707 authored by mercury233's avatar mercury233
parents 716dbad9 e8d68c3f
...@@ -59,18 +59,19 @@ public: ...@@ -59,18 +59,19 @@ public:
return l + (int)(x % range); return l + (int)(x % range);
} }
// N % k == (N - k) % k, discard the leftmost numbers // N % k = (N - k) % k = (-k) % k
// discard (N % range) numbers from the left end so that it is a multiple of range
#pragma warning(disable:4146)
int get_random_integer_v2(int l, int h) { int get_random_integer_v2(int l, int h) {
uint32_t range = (h - l + 1); uint32_t range = (h - l + 1);
#pragma warning(disable:4146)
uint32_t bound = -range % range; uint32_t bound = -range % range;
#pragma warning(default:4146)
auto x = rng(); auto x = rng();
while (x < bound) { while (x < bound) {
x = rng(); x = rng();
} }
return l + (int)(x % range); return l + (int)(x % range);
} }
#pragma warning(default:4146)
// Fisher-Yates shuffle [first, last) // Fisher-Yates shuffle [first, last)
template<typename T> template<typename T>
......
...@@ -12,7 +12,6 @@ end ...@@ -12,7 +12,6 @@ end
workspace "ocgcoredll" workspace "ocgcoredll"
location "build" location "build"
language "C++" language "C++"
cppdialect "C++14"
configurations { "Release", "Debug" } configurations { "Release", "Debug" }
platforms { "x32", "x64" } platforms { "x32", "x64" }
...@@ -62,7 +61,6 @@ include(LUA_DIR) ...@@ -62,7 +61,6 @@ include(LUA_DIR)
project "ocgcore" project "ocgcore"
kind "SharedLib" kind "SharedLib"
cppdialect "C++14"
files { "*.cpp", "*.h" } files { "*.cpp", "*.h" }
links { "lua" } links { "lua" }
......
project "ocgcore" project "ocgcore"
kind "StaticLib" kind "StaticLib"
cppdialect "C++14"
files { "*.cpp", "*.h" } files { "*.cpp", "*.h" }
...@@ -10,6 +9,9 @@ project "ocgcore" ...@@ -10,6 +9,9 @@ project "ocgcore"
includedirs { LUA_INCLUDE_DIR } includedirs { LUA_INCLUDE_DIR }
end end
filter "not action:vs*"
cppdialect "C++14"
filter "system:bsd" filter "system:bsd"
defines { "LUA_USE_POSIX" } defines { "LUA_USE_POSIX" }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment