【问题标题】:Random permutation with equal transition probability具有相等转移概率的随机排列
【发布时间】:2018-04-30 05:18:07
【问题描述】:

给定 x = [1,2,3,4],我希望得到一个由 x 的排列产生的 160 个数字的序列,但有一些注意事项:

  1. 同一个数字不重复 [ex 1,1]
  2. 每对夫妇的转移概率相等

有我可以利用的 Matlab 函数吗?

【问题讨论】:

  • 4 个对象的排列?应该是4! = 24,而不是 160
  • 这个我知道!不过,我的最终序列必须包含 160 个数字。
  • 请详细说明“每对夫妇的过渡概率相等”是什么意思。
  • x 的排列产生的数字序列是什么?你的意思是一个向量序列,其中每个向量都是 x 的排列?
  • 是的。有了这些警告。

标签: matlab statistics permutation probability


【解决方案1】:
close all
clear all
clc

x=[1 2 3 4];
Nx=numel(x);
N=10^6; % lenght of sequence
S=nan(1,Nx);
idx=1;
S(1)=x(idx);
xrest=x(x~=x(idx));
for iN=2:N

    idx=randi(Nx-1);
    S(iN)=xrest(idx);
    xrest=x(x~=xrest(idx));
end
%%
sum(diff(S)==0); % check for repeats
%%
pairs=nchoosek(x,2); % get forward transitions
pairs=[pairs;pairs(:,[2,1])]; % add reverse transitions
Count=nan(size(pairs,1),1);
for iPair=1:size(pairs,1)
   Count(iPair)= numel(find(S(1:end-1)==pairs(iPair,1) & S(2:end) ==pairs(iPair,2)));
end
%%
bar(Count) % equal transition probabilities

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-03
    • 2015-06-08
    • 1970-01-01
    • 2016-09-12
    • 2012-02-11
    • 1970-01-01
    • 2017-05-16
    相关资源
    最近更新 更多