3个回答
展开全部
抽6张,一共有4^6=4096种可能。
下面再算有多少种中奖的可能。
如果中奖了,那么四种卡片的数量的模式只可能是:
1,1,1,3
1,1,2,2
对于每种模式,我们还要把数量算分到4张卡片上。
第一种模式有4!/(3!)=4种分配方法,每种分配方法有6!/(3!)=120种中奖可能。
第二种模式有4!/(2!*2!)=6种分配方法,每种分配方法有6!/(2!*2!)=180种中奖可能。
所以一共有4*120+6*180=1560种中奖可能。
所以中奖概率为:1560/4096约为0.38。
附:C++模拟程序,结果与0.38非常接近!
int main() {
int n = 1000000; //test count
int c = 0;
for ( int i = 0; i < n; i++ ) {
int a[4] = ;
for ( int k = 0; k < 6; k++ ) {
a[rand() % 4]++;
}
bool good = true;
for ( int k = 0; k < 4; k++ ) {
if ( a[k] == 0 ) {
good = false;
break;
}
}
if ( good ) {
c++;
}
}
cout << double ( c ) / n << endl;
}
下面再算有多少种中奖的可能。
如果中奖了,那么四种卡片的数量的模式只可能是:
1,1,1,3
1,1,2,2
对于每种模式,我们还要把数量算分到4张卡片上。
第一种模式有4!/(3!)=4种分配方法,每种分配方法有6!/(3!)=120种中奖可能。
第二种模式有4!/(2!*2!)=6种分配方法,每种分配方法有6!/(2!*2!)=180种中奖可能。
所以一共有4*120+6*180=1560种中奖可能。
所以中奖概率为:1560/4096约为0.38。
附:C++模拟程序,结果与0.38非常接近!
int main() {
int n = 1000000; //test count
int c = 0;
for ( int i = 0; i < n; i++ ) {
int a[4] = ;
for ( int k = 0; k < 6; k++ ) {
a[rand() % 4]++;
}
bool good = true;
for ( int k = 0; k < 4; k++ ) {
if ( a[k] == 0 ) {
good = false;
break;
}
}
if ( good ) {
c++;
}
}
cout << double ( c ) / n << endl;
}
展开全部
产生一个限定范围的随机数。用if语句,不同的随机数或随机数范围输出对应的题目
追问
我不会写啊 能不能给写下我学学 我会随机数组 字符串的怎么随机
追答
#include
#include
//…
srand((unsigned)time(0));/*以当前时间作为产生随机数的初始值,不加这句话,每次产生的随机数
都一样了*/
int ran_num;
ran_num=rand() % 5;
//假设a,b,c,d,e是你想随机输出的string型
switch(ran_num)
{
case 0:
cout<<a<<endl;
break;
case 1:
cout<<b<<endl;
break;
//下同
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rand
Generates a pseudorandom number.
Routine Required Header
rand <stdlib.h>
int rand( void );
Libraries
All versions of the C run-time libraries.
Return Values
rand returns a pseudorandom number, as described above. There is no error return.
Remarks
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX. Use the srand function to seed the pseudorandom-number generator before calling rand.
Example
/* RAND.C: This program seeds the random-number generator
* with the time, then displays 10 random integers.
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i;
/* Seed the random-number generator with current time so that
* the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
/* Display 10 numbers. */
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
Output
6929
8026
21987
30734
20587
6699
22034
25051
7988
10104
Generates a pseudorandom number.
Routine Required Header
rand <stdlib.h>
int rand( void );
Libraries
All versions of the C run-time libraries.
Return Values
rand returns a pseudorandom number, as described above. There is no error return.
Remarks
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX. Use the srand function to seed the pseudorandom-number generator before calling rand.
Example
/* RAND.C: This program seeds the random-number generator
* with the time, then displays 10 random integers.
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i;
/* Seed the random-number generator with current time so that
* the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
/* Display 10 numbers. */
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
Output
6929
8026
21987
30734
20587
6699
22034
25051
7988
10104
更多追问追答
追问
我是想问 比如有字符串 stri str2等等 我怎么把他循环的显示出来str(i)吗?我有点纠结啊
追答
char str[10] = "Hello";
for(int i = 0; i < 10; i++)
{
printf("%c ", str[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询