'pick'例程的'randomness'权重?
Weight the 'randomness' of the 'pick' routine?
我正在使用 Cro 框架在 Perl 6 中创建一个 API 服务器!此 API 的目的是提供有关 Pokemon 的数据,并提供用于根据输入数据生成 Pokemon 的端点。生成的因素之一是 gender
,在我的 PostgreSQL 数据库中,每个引用 Pokemon 都有一个 gender-ratio
列,其中包含一个 JSON 值,如下所示:
"gender-ratio": {
"default": {
"Male": 0.25,
"Female": 0.75
},
"alolan": {
"Male": 0.25,
"Female": 0.75
}
},
你会注意到我有两个键,分别是 default
和 alolan
,这是因为口袋妖怪可以有多种形式,但它与这个问题几乎无关 - 相关的是实际性别比率值。这是我的生成方法目前的样子:
method select-gender($pokemon, $form = 'default') {
enum GENDER ( <Male Female> );
return GENDER.pick;
}
默认情况下 pick
是随机的,在本例中为 50/50。但是,我希望能够根据从数据库返回的比率结果来衡量每个选项的随机性。我的一个想法是用数据库查询的结果作为 GENDER
枚举的种子,因此对于特定示例它看起来更像这样:
enum GENDER ( <Male Female Female Female> );
除非其他人对根据我的 SELECT
语句的结果动态改变 pick
的行为有更好的想法?
使用 Mix 和 roll
:
my %gender-ratio = %(default => {
"Male" => 0.25,
"Female" => 0.75
},
alolan => {
"Male" => 0.25,
"Female" => 0.75
}
);
my Mix $default = %gender-ratio<default>.Mix;
for ^10 {
say $default.roll;
}
我正在使用 Cro 框架在 Perl 6 中创建一个 API 服务器!此 API 的目的是提供有关 Pokemon 的数据,并提供用于根据输入数据生成 Pokemon 的端点。生成的因素之一是 gender
,在我的 PostgreSQL 数据库中,每个引用 Pokemon 都有一个 gender-ratio
列,其中包含一个 JSON 值,如下所示:
"gender-ratio": {
"default": {
"Male": 0.25,
"Female": 0.75
},
"alolan": {
"Male": 0.25,
"Female": 0.75
}
},
你会注意到我有两个键,分别是 default
和 alolan
,这是因为口袋妖怪可以有多种形式,但它与这个问题几乎无关 - 相关的是实际性别比率值。这是我的生成方法目前的样子:
method select-gender($pokemon, $form = 'default') {
enum GENDER ( <Male Female> );
return GENDER.pick;
}
默认情况下 pick
是随机的,在本例中为 50/50。但是,我希望能够根据从数据库返回的比率结果来衡量每个选项的随机性。我的一个想法是用数据库查询的结果作为 GENDER
枚举的种子,因此对于特定示例它看起来更像这样:
enum GENDER ( <Male Female Female Female> );
除非其他人对根据我的 SELECT
语句的结果动态改变 pick
的行为有更好的想法?
使用 Mix 和 roll
:
my %gender-ratio = %(default => {
"Male" => 0.25,
"Female" => 0.75
},
alolan => {
"Male" => 0.25,
"Female" => 0.75
}
);
my Mix $default = %gender-ratio<default>.Mix;
for ^10 {
say $default.roll;
}