简单,生成个从A中依照给定概率抽取数的列表b给你看:
A=[10 2 3 25];b=[];p=[04 03 02 01];
pc=cumsum(p);
for k=1:12
i=rand();
pb=pc-i;
for j = 1:4
if pb(j)>0
break;
end
end
b=[A(j),b];
end
b
再开matlab估计电脑就热爆了于是改用
我的调试结果(octave)(其实复制粘贴都是一样的)
嗯~~这个所谓随机其实都是伪随机的~~那个可以这么处理~~建立一个数组比如D(1000),之后比如出现0的概率为01%就在D中的某个位置赋值为0,以此类推出现1的概率为03%,就随机找三个位置分别赋值为1,之后就让电脑依次输出1000个数,或者用什么方法……
你是要程序吗??什么语言的?
本文由青松原创并依GPL-V2及其后续版本发放,转载请注明出处且应包含本行声明。
C++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-random integral number)。生成随机数时需要我们指定一个种子,如果在程序内循环,那么下一次生成随机数时调用上一次的结果作为种子。但如果分两次执行程序,那么由于种子相同,生成的“随机数”也是相同的。
在工程应用时,我们一般将系统当前时间(Unix时间)作为种子,这样生成的随机数更接近于实际意义上的随机数。给一下例程如下:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
double random(double,double);
srand(unsigned(time(0)));
for(int icnt = 0; icnt != 10; ++icnt)
cout << "No" << icnt+1 << ": " << int(random(0,10))<< endl;
return 0;
}
double random(double start, double end)
{
return start+(end-start)rand()/(RAND_MAX + 10);
}
/ 运行结果
No1: 3
No2: 9
No3: 0
No4: 9
No5: 5
No6: 6
No7: 9
No8: 2
No9: 9
No10: 6
/
我们来看一个经典的生日概率问题。以1年365天计(不考虑闰年因素),你如果肯定在某人群中至少要有两人生日相同,那么需要多少人?大家不难得到结果,366人,只要人数超过365人,必然会有人生日相同。但如果一个班有50个人,他们中间有人生日相同的概率是多少?你可能想,大概20%~30%,错,有97%的可能!它的计算方式是这样的:a、50个人可能的生日组合是365×365×365×……×365(共50个)个;b、50个人生日都不重复的组合是365×364×363×……×316(共50个)个;c、50个人生日有重复的概率是1-b/a。这里,50个人生日全不相同的概率是b/a=003,因此50个人生日有重复的概率是1-003=097,即97%。根据概率公式计算,只要有23人在一起,其中两人生日相同的概率就达到51%!但是,如果换一个角度,要求你遇到的人中至少有一人和你生日相同的概率大于50%,你最少要遇到253人才成。
本文来自CSDN博客,转载请标明出处: >
这一道题目可以反过来考虑
第一,第二,第三道工序的次品率分别为2%、3%、5%
那么第一,第二,第三道工序的非次品率分别为98%、97%、95%
那么三道工序之后非次品率的概率为098×097×095
那么次品率为1-098×097×095=009693=9693%
设x,y分别为两船进码头的时间则(X,Y)服从矩形区域:0<=x<=24, 0<=y<=24上的均匀分布
按条件,不用等待的事件为A{:x-y>1 } B{ y-x>2} A,B互不相容
P(A)=05(23^2)/24^2, P(B)=05(22^2)/24^2
P(必须等待)=1-P(A)-P(B)=1-(529)/1152- 484/1152=139/1152
以上就是关于您好!抱歉打扰您。请问:如何用程序语言表示:以一定概率选择某数进行运算全部的内容,包括:您好!抱歉打扰您。请问:如何用程序语言表示:以一定概率选择某数进行运算、帮忙写编程“随机出数的程序按概率出”、那位高手帮解一下概率题(用C++或者MATLAB编写程序),先谢谢了!鄙人QQ号879001573,可直接发到我邮箱。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)