求助:依概率随机选择问题,谢谢!
来源:百度知道 编辑:UC知道 时间:2024/09/28 17:29:50
P=(v(1)/sum(v),v(2)/sum(v),...,v(5)/sum(v)),
其中向量v=(v(1),v(2),...,v(5))已知。
我要在这5个点中每次依概率P选择一个点,并重复此操作3次。请问用Matlab语言如何实现,非常感谢!
即在点1,2,...,5中选择一个点,且每点被选到的概率分别为:
v(1)/sum(v),v(2)/sum(v),...,v(5)/sum(v)。
并重复此操作3次。请问各位该怎么编写?
不会matlab不过你既然学计算机 有了解题思路就行了吧?语言种类多到哪去了。。。
一个外循环3次
然后在里面随机生成一个1 - sum(v)的数
然后如果数字在 1-v(1) v(1) - v(2)等区间内时,向随便哪个列表内加入 代表这几个区间的字浮, 比如"12345"分别代表随即生成的数在 上面5个区间内。
最后你只要算出总循环次数,和里面1,2,3,4,5的个数,就能知道他们分别的概率是多少了。
你可以参考我刚写的java程序。程序要生成当扔2个赛子时,点数生成情况和概率。
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package diceandprobability;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
/**
*
* @author Yichuan
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
final int TOTAL_ROLL = 1000000;
final int NUM_DICE = 2;