公司年会,要求每个人买个礼物
需求如下:
约60左右人参加,把所有人姓名录入软件。
分三次生成随机数,每一次生成30人,跟另外30人互换
最好软件能够自动对应(互相换礼物)
目的:
换3次以后让礼物换乱。不清楚手里的礼物是谁买的。
越乱越好。
求大神指点,是否有现成的这种软件。
广西网友:为什么要30一次,还要换几次? 直接每人分随机礼物就好了
四川网友:自己动手手,多学习下
云南网友:要么自己做 要么找活动商买还能开票
内蒙古网友:
h20 发表于 2020-12-29 11:31
要么自己做 要么找活动商买还能开票
提示一下,哪种活动商店?在哪能找到?
吉林网友:礼物在后台编号,然后抽编号不就行了
西藏网友:需求都没说明白,你这不就是把60个礼物丢一块,随机拿不就完了?
天津网友:"每一次生成30人,跟另外30人互换" 这个地方两波人互换的策略是?
另我记得简单的shuffle算法两层循环即可实现
辽宁网友:你的车是凯迪拉克吗?
湖南网友:
60个名字的数组乱序, 然后从头到尾依次抓出30对儿, 每对儿的两个人礼物互换就行啦
福建网友:
- const nameList = ["赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许", "何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏"];
- shuffle(nameList);
- pick(nameList);
- function shuffle(list) {
- for (let i = 0, len=list.length; i < len; i++) {
- const rand = ~~(Math.random() * len);
- [list[i], list[rand]] = [list[rand], list[i]];
- }
- }
- function pick(list) {
- const result = [];
- let pair = [];
- for (let i = 0, len=list.length; i < len; i++) {
- if(i % 2 === 0) {
- pair = [list[i]];
- } else {
- pair.push(list[i]);
- result.push(pair.join(‘ <-> ‘));
- }
- }
- console.log(result);
- }
复制代码
浏览器控制台执行就可以