我需要一些关于随机性算法的帮助.所以问题是.
有8个事件将在8小时内发生.事件可能在随机时间发生.现在它意味着每秒钟发生事件的可能性为50 /(8*60*60)= .001736.如何使用随机生成算法执行此操作?
我可以得到随机数
int r = rand();
double chance = r/RAND_MAX;
if(chance < 0.001736)
then event happens
else
no event
Run Code Online (Sandbox Code Playgroud)
但大多数时候rand()返回0和0 <0.001736并且我收到的事件多于所需的事件.
有什么建议?
抱歉,我忘记提及我计算机会为双倍机会=(static_cast)(r)/(static_cast)(RAND_MAX);
它从static_cast中删除了double
double chance =(double)r /(double)(RAND_MAX);
需要帮助来创建正则表达式匹配字符串
www.*.abc.*/somestring
Run Code Online (Sandbox Code Playgroud)
这里*是外卡,它可以像我们这样的任何人,英国
或者com,edu
喜欢
www.us.abc.com/somestring
www.uk.abc.edu/somestring
Run Code Online (Sandbox Code Playgroud) 是否有任何API可以向线程发送消息?基本上我只有threadId可用,我想向该线程发送自定义消息.
我在挑战之一中发现了这个问题。
问题是我们给定一个整数N,我们需要找到最小的数字X,其数字乘积为N
我的方法是首先找到单位数的质数,例如10个倍数是2,5,100个倍数是2,2,5,5
你们能想到更好的算法吗?
int getNumber(int n) {
int temp = n;
int a[4] ={2,3,5,7};
std::string str;
do
{
for(int i=0;i<4;++i)
{
int val = temp%a[i];
if(val ==0)
{
char s[260];
sprintf(s,"%d",a[i]);
str += s;
temp /=a[i];
break;
}
}
}while(temp>1);
char newStr[260];
int countof2=0,countof3=0;
for(int i=0;i<str.length();++i)
{
if(str[i]=='2')
++countof2;
if(str[i]=='3')
++countof3;
}
bool bFlag=false;
int indexNew=0;
if(countof2 >= 3)
{
int count =0; …Run Code Online (Sandbox Code Playgroud)