Commit 42c50707 authored by mercury233's avatar mercury233
parents 716dbad9 e8d68c3f
......@@ -59,18 +59,19 @@ public:
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) {
uint32_t range = (h - l + 1);
#pragma warning(disable:4146)
uint32_t bound = -range % range;
#pragma warning(default:4146)
auto x = rng();
while (x < bound) {
x = rng();
}
return l + (int)(x % range);
}
#pragma warning(default:4146)
// Fisher-Yates shuffle [first, last)
template<typename T>
......
......@@ -12,7 +12,6 @@ end
workspace "ocgcoredll"
location "build"
language "C++"
cppdialect "C++14"
configurations { "Release", "Debug" }
platforms { "x32", "x64" }
......@@ -62,7 +61,6 @@ include(LUA_DIR)
project "ocgcore"
kind "SharedLib"
cppdialect "C++14"
files { "*.cpp", "*.h" }
links { "lua" }
......
project "ocgcore"
kind "StaticLib"
cppdialect "C++14"
files { "*.cpp", "*.h" }
......@@ -10,6 +9,9 @@ project "ocgcore"
includedirs { LUA_INCLUDE_DIR }
end
filter "not action:vs*"
cppdialect "C++14"
filter "system:bsd"
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