1.前段时间做项目 有一个随机 得到 内容的问题 要求可以在外部修改 随机权重 进行随机取值
private List<string> str1 = new List<string>() { "A", "B", "C", "D", "E" };
private List<string> str2 = new List<string>() { "1", "2", "3", "4", "5" };
public float weigt = 0;//随机 权重
List<string> allRandom = new List<string>();//最后 得到的内容
int randomCount = 5;//一共需要得数量
void SetRandom()
{
float random_str1 = (0.5f + weigt * 0.05f) * randomCount;
float random_str2 = (1 - (0.5f + weigt * 0.05f)) * randomCount;
for (int i = 0; i < GetInt(random_str1); i++)
{
int count = UnityEngine.Random.Range(0, str1.Count);
allRandom.Add(str1[count]);
}
for (int i = 0; i < GetInt(random_str2); i++)
{
int count = UnityEngine.Random.Range(0, str2.Count);
allRandom.Add(str2[count]);
}
foreach (string item in allRandom)
{
Debug.Log("输出值: " + item);
}
}
int GetInt(float f)
{
float ff = f - (int)f;
int n = ff >= 0.5f ? (int)f + 1 : (int)f;
return n;
}