私はC#でこれを試しましたが、あまり成功しませんでした。だから私は現在SASで試しています。 EGセッションとSASコードを使用して、SASHELP.CLASSの学生リストを作成します。 これらの人はお互いを知り合い、毎月ランダムなペアリングをしてCoffee Dateに行きたいと思っています。SAS:コーヒーは誰ですか?
ルール: ランダムコーヒー日付リストは毎月生成されます。 毎月のペアリングを履歴データセットに保存します。履歴データセットは毎月追加します。
6か月以内に同一人物とコーヒーを飲むことはできません。だから我々は、3バールとの歴史的な目的のために別のデータセットを保つ: LastDate、InviterID、InvitedID
我々は唯一の目的を確認するために、一時データセットに直近6ヶ月のデータをロードしているの歴史的なリストに対して、各ペアリングを確認してください。
最近一致するペアが見つからない場合は、新しいペアが新しいペアデータセットに追加され、2つの名前(行)が元の参加者データセットから削除されます。
残念ながら、このリストには19人の人がいますので、新しい参加者を追加することができるまで1人が脱落します。コーヒークラブに参加することに興味のある人はいますか? :-)
だから私は、データセットから派生し、ID(N)で開始し、私はこれらの19人々はコーヒークラブで私の参加になります
Data Participants(Keep=ID Name);
FORMAT ID 8.;
set SASHelp.class;
ID=_n_;
run;
名前を保持します。
私は多かれ少なかれ思考の行は、次のとおりです。
data _null_;
randvar = ceil(rand('UNIFORM') * 100000);
call symput('RANDSEED', randvar);
run;
data CR.names2(keep=MEMID randid);
set CR.MasterNames;
randid = rand('UNIFORM');
run;
proc sort data=CR.names2 ; by randid; run;
data CR.pairs(keep=pairgrp MEMID);
set CR.names2 nobs=num_peeps;
pairgrp+1;
if pairgrp > floor(num_peeps/2) then pairgrp=1;
run;
proc sort data=CR.pairs; by pairgrp;run;
proc transpose data=CR.pairs
out=CR.pairs2 (drop=_NAME_);
var memid;
by pairgrp;
run;
Data CR.Pairs3;
set CR.pairs2;
rename COL1=InviterID COL2=InvitedID;
run;
をしかし、私は、私は休みくださいとの助けを必要と :-(立ち往生...
誰が、このタイプのを行っていますランダムなペアリングが正常に終了しましたか?ここでわらを掴んでいます... 助けを歓迎します。