博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List洗牌和权重选取算法
阅读量:5964 次
发布时间:2019-06-19

本文共 985 字,大约阅读时间需要 3 分钟。

using System;using System.Collections.Generic;using Random = UnityEngine.Random;public static class IListExtension{    // 洗牌    public static void Shuffle
(this IList
list) { for (var i = list.Count - 1; i >= 0; --i) { var index = Random.Range(0, list.Count); var temp = list[index]; list[index] = list[i]; list[i] = temp; } } // 按权重选取 public static T SelectByWeight
(this IList
> list) { var allWeight = 0; foreach (var (weight, _) in list) allWeight += weight; if (allWeight == 0) return default; var value = Random.Range(0, allWeight); foreach (var (weight, item) in list) { if (value < weight) return item; value -= weight; } return default; } }

转载于:https://www.cnblogs.com/Fallever/p/10583242.html

你可能感兴趣的文章
oracle 常用命令大汇总
查看>>
2012年春运火车票电话和网上订票技巧、攻略
查看>>
根据request获取请求路径
查看>>
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
linux系统增加swap容量的方法
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>
linux之权限之隐藏权限
查看>>
XDCTF成长记录
查看>>
registered the JDBC driver [com.mysql.jdbc.Driver]
查看>>
Linux系统中的文本处理工具
查看>>
IDE---Python IDE之Eric5在window下的安装
查看>>
python---LineReceiver实现记录服务器
查看>>
Mybatis调用Oracle中的存储过程和function
查看>>
telnet :No route to host
查看>>
基本安装lnmp环境
查看>>
yum源资料汇总
查看>>