我有两个字符串,他们有' - '和' +'登录。
我想从变量中选择一个随机符号。到目前为止,我试过这样,但它只输出' +' - 签名,我怎么能让它正确?
srand(time(0));
char rand_symb;
char plus = '+';
char minus = '-';
rand_symb = rand() % (plus - minus + 1) + minus;
答案 0 :(得分:5)
最好使用C ++ 11 random generation facilities和公平的硬币模拟器
#include <iostream>
#include <random>
int main()
{
std::random_device r;
std::default_random_engine e1(r());
std::bernoulli_distribution coin_flip(0.5);
bool sign = coin_flip(e1);
std::cout << (sign ? '-' : '+');
}
答案 1 :(得分:2)
您在两个值之间进行选择,因此您需要生成两个随机值。最简单的是生成0和1:
Dim rng As Range
rng = Sheets("NewForecast").ListObjects("Table").Range.Select
If rng.Rows = 0 Then
rng.EntireRow.Delete
End If
(是的,狂热的纯粹主义者会告诉你,这注定要失败,因为int value = rand() % 2;
很糟糕,但这对你目前正在做的事情来说已经足够了。)
根据该值,选择以下两个字符之一:
rand()
或者,为了使整个事情更紧凑:
char ch = value ? '+' : '-';