这是一个有趣的问题:我需要生成随机x/y对,它们与Pearson积矩相关系数或Pearson r的给定值相关.您可以将其想象为两个数组,即数组X和数组Y,其中必须重新生成,重新排序或转换数组X和数组Y的值,直到它们在给定的Pearson r级别彼此相关.这是踢球者:数组X和数组Y必须是统一的分布.
我可以用正态分布做到这一点,但转换值而不会扭曲分布让我感到难过.我尝试重新排序数组中的值以增加相关性,但我永远不会通过排序使数组在1.00或-1.00处相关.
有任何想法吗?
-
这是随机相关高斯人的AS3代码,让车轮转动:
public static function nextCorrelatedGaussians(r:Number):Array{
var d1:Number;
var d2:Number;
var n1:Number;
var n2:Number;
var lambda:Number;
var r:Number;
var arr:Array = new Array();
var isNeg:Boolean;
if (r<0){
r *= -1;
isNeg=true;
}
lambda= ( (r*r) - Math.sqrt( (r*r) - (r*r*r*r) ) ) / (( 2*r*r ) - 1 );
n1 = nextGaussian();
n2 = nextGaussian();
d1 = n1;
d2 = ((lambda*n1) + ((1-lambda)*n2)) / Math.sqrt( (lambda*lambda) + (1-lambda)*(1-lambda));
if (isNeg) {d2*= …Run Code Online (Sandbox Code Playgroud) 这是我一直在玩一个星期左右的问题,由同事提出:
想象一下在36x36网格上玩的游戏 .游戏的目标是创建任意大小的正方形的四个角(例如,2x2,3x3,4x4等).第一个玩家将游戏块放在除中心四个网格空间之外的任何地方.在第一步之后,玩家可以将他们的游戏块放在网格上的任何位置.放置后,游戏片段无法移动.就是这样; 游戏简单而有趣.
我一直试图想出一个算法来赢,或者至少在这场比赛中取得好成绩.有什么建议?