c 怎么随机抽题

请问一个关于随机抽题的问题就是自己定义五道题然后随机抽两道显示出来请问怎么写?... 请问一个关于随机抽题的问题 就是自己定义五道题然后随机抽两道显示出来 请问怎么写? 展开
 我来答
tlsbogw
2011-06-11 · TA获得超过472个赞
知道答主
回答量:311
采纳率:0%
帮助的人:169万
展开全部
抽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;
}
帐号已注销
2011-06-07 · TA获得超过119个赞
知道答主
回答量:68
采纳率:0%
帮助的人:0
展开全部
产生一个限定范围的随机数。用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;
//下同
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouciming
2011-06-07 · TA获得超过223个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:159万
展开全部
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
更多追问追答
追问
我是想问 比如有字符串 stri str2等等 我怎么把他循环的显示出来str(i)吗?我有点纠结啊
追答
char str[10] = "Hello";
for(int i = 0; i < 10; i++)
{
printf("%c ", str[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式