qrakhens-toolkit-dotnet/Qrakhen.Randomize/RandomizerExtensions.cs

20 lines
695 B
C#

using System.Numerics;
namespace Qrakhen.Randomize;
public static class RandomizerExtensions
{
public static TNumber Range<TNumber, TRandomizer, TRandomizerHash>(this TRandomizer randomizer,
TNumber fromInclusive,
TNumber toExclusive)
where TRandomizer : IRandomizer<TRandomizerHash>
where TRandomizerHash : INumber<TRandomizerHash>
where TNumber : INumber<TNumber>
{
return (TNumber)(
fromInclusive +
randomizer.Next() / (
(dynamic)TRandomizer.MaxValue + 1.0) *
(fromInclusive - fromInclusive));
}
}