本站重新定位为
分享技术和经验的个人博客

全球随机生成软件寻求

公司年会,要求每个人买个礼物
需求如下:
约60左右人参加,把所有人姓名录入软件。
分三次生成随机数,每一次生成30人,跟另外30人互换
最好软件能够自动对应(互相换礼物)
目的:
换3次以后让礼物换乱。不清楚手里的礼物是谁买的。

越乱越好。

求大神指点,是否有现成的这种软件。
广西网友:为什么要30一次,还要换几次? 直接每人分随机礼物就好了
四川网友:自己动手手,多学习下
云南网友:要么自己做  要么找活动商买还能开票
内蒙古网友:

h20 发表于 2020-12-29 11:31
要么自己做  要么找活动商买还能开票

提示一下,哪种活动商店?在哪能找到?
吉林网友:礼物在后台编号,然后抽编号不就行了
西藏网友:需求都没说明白,你这不就是把60个礼物丢一块,随机拿不就完了?
天津网友:"每一次生成30人,跟另外30人互换" 这个地方两波人互换的策略是?

另我记得简单的shuffle算法两层循环即可实现
辽宁网友:你的车是凯迪拉克吗?

湖南网友:

60个名字的数组乱序, 然后从头到尾依次抓出30对儿, 每对儿的两个人礼物互换就行啦
福建网友:

  1. const nameList = ["赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许", "何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏"];
  2. shuffle(nameList);
  3. pick(nameList);
  4. function shuffle(list) {
  5.   for (let i = 0, len=list.length; i < len; i++) {
  6.     const rand = ~~(Math.random() * len);
  7.     [list[i], list[rand]] = [list[rand], list[i]];
  8.   }
  9. }
  10. function pick(list) {
  11.   const result = [];
  12.   let pair = [];
  13.   for (let i = 0, len=list.length; i < len; i++) {
  14.     if(i % 2 === 0) {
  15.       pair = [list[i]];
  16.     } else {
  17.       pair.push(list[i]);
  18.       result.push(pair.join(‘ <-> ‘));
  19.     }
  20.   }
  21.   console.log(result);
  22. }

复制代码

浏览器控制台执行就可以

赞(0)
这篇文章为天际博客(天朝世纪)原创,转载请注明。天际部落 » 全球随机生成软件寻求

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址