先週のチャレンジに対する解答は こちらをご覧ください!
今週のチャレンジは@PhilipManneringからの出題です。
この問題はコミュニティでの 質問 からインスピレーションを受けました。
在宅勤務が一般的になったため、チームのメンバーと1対1の時間を過ごすことが難しくなりました。
与えられた名前のリストを使用して、週ごとにペア(二人の組み合わせ)を生成してください。
全ての人にパートナーがいる必要があります。また、同じ相手との組み合わせを繰り返さないでください。
簡単そうに見えましたが、考え方が中々難しい問題ですね。Workflow自体はSimpleで、面白い問題でした。
上級課題もできました。
、
忠実にround-robin tournamentの方法を従い、Batch Macroでやってみました。
https://en.wikipedia.org/wiki/Round-robin_tournament#Circle_method
グローバルのコミュニティだと繰り返しマクロ派が圧倒的に多いようなので(マクロなし派が少数)繰り返しマクロ版作ってみたのですが、根本的な考え方がマクロなし版から離れられなくて・・・。
ただ、やってることはわかりやすく作れたと思います(マクロじゃない版は逆にわかりにくくできてしまった気がします)が、逆にグローバルのコミュニティに似たようなマクロがない・・・。
繰り返しマクロ
最初のレコードを固定して、一番下のレコードを2番目に挿入するだけの簡単なお仕事です!
ヒントのwikipediaをそのまま数式&マクロにした感じです。
できあがったOutputが回答と完全に同じにはならなかったのですが、
同じ相手との組み合わせは繰り返されていないので要件は満たせているはず・・・。
一般化したほうが早いんじゃない?と思い、最初から上級版にチャレンジしました。
かなり難儀しました。
マクロ↓
ちなみに、私のチームは対面好きの当社では珍しく全員ほぼフルリモートで働いていますが、
コミュニケーション向上のためにまさにこれ(毎週メンバーをランダムペアリングして15分程度のフリー雑談)を試行中です。
今のところ割とポジティブな効果が出ています。ぜひお試しください。
最初wikiを見ずにやろうとして挫折しました。二人組の組み合わせ全てを作るのは簡単ですが、毎週の3ペアを抜け漏れなく作るのが難しかった。Round Robin Tournament ってすごい。
答えと同じ出力にすることが難しいイメージで、あきらめました
愚直なやり方と、汎用性のある解き方をしました
愚直なやり方は計算するたびにランダムになるだろうと「ランダムサンプリング」を使いましたが、うまいことランダムにならずに機能に疑問を感じました