-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprobability_wrapper.cpp
More file actions
63 lines (53 loc) · 2.48 KB
/
probability_wrapper.cpp
File metadata and controls
63 lines (53 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "probability_wrapper.h"
// Getters
const double ProbabilityWrapper::get_base_star6_rate() const {
return base_star6_rate;
}
const double ProbabilityWrapper::get_on_banner_star6_conditional_rate() const {
return on_banner_star6_conditional_rate;
}
const double ProbabilityWrapper::get_delta_star6_base_rate() const {
return delta_base_star6_rate;
}
const unsigned int ProbabilityWrapper::get_banner_operator_num() const {
return banner_operator_num;
}
// Setters
void ProbabilityWrapper::set_on_banner_star6_conditional_rate(
double _on_banner_star6_conditoinal_rate) {
on_banner_star6_conditional_rate = _on_banner_star6_conditoinal_rate;
}
void ProbabilityWrapper::set_banner_operator_num(
unsigned int _banner_operator_num) {
banner_operator_num = _banner_operator_num;
}
// calculate the initial threshold of getting a any star 6 operator
// based on the range of uniform int distribution
unsigned long long int ProbabilityWrapper::calc_init_star6_threshold(
const unsigned int dist_left_border, const unsigned int dist_right_border) {
return static_cast<unsigned long long int>(
(dist_right_border - dist_left_border + 1) * base_star6_rate);
}
// calculate the initial threshold of getting a specific star 6 operator
// based on the range of uniform int distribution
unsigned long long int ProbabilityWrapper::calc_init_target_star6_threshold(
const unsigned int dist_left_border, const unsigned int dist_right_border) {
return static_cast<unsigned long long int>(
(dist_right_border - dist_left_border + 1) * base_star6_rate *
on_banner_star6_conditional_rate / banner_operator_num);
}
// calculate the change step of the threshold of getting a any star 6 operator
// after the pity system comming into effect
unsigned int ProbabilityWrapper::calc_star6_threshold_change_step(
const unsigned int dist_left_border, const unsigned int dist_right_border) {
return static_cast<unsigned int>((dist_right_border - dist_left_border + 1) *
delta_base_star6_rate);
}
// calculate the change step of the threshold of getting the target star 6
// operator after the pity system comming into effect
unsigned int ProbabilityWrapper::calc_target_star6_threshold_change_step(
const unsigned int dist_left_border, const unsigned int dist_right_border) {
return static_cast<unsigned int>(
calc_star6_threshold_change_step(dist_left_border, dist_right_border) *
on_banner_star6_conditional_rate / banner_operator_num);
}