각 확률 간격에 결과가 있도록 확률에 따라 데이터를 정렬하는 방법은 무엇입니까?
예를 들어 다음과 같은 데이터 세트가 있다고 가정해보세요
으아아아Key는 정렬할 값이고 value는 각 값이 배열의 해당 위치에 나타날 확률입니다. 예를 들어 a는 계산된 배열에서 위치 0에 나타날 확률이 40%입니다. , a가 먼저 배열에 표시될 확률은 40%이고 나머지는 확률에 따라 알고리즘적으로 정렬됩니다.
현재 솔루션(Low의 방법이며 배열이 확장됨에 따라 계속 지원될 수 없음):
1. a의 간격이 0~40이고 b의 간격이 다음과 같다고 가정하고 기존 확률에 따라 간격을 나눕니다. 40-60, c는 60-70 등
2. 함수를 사용하여 1-100 범위의 난수를 얻은 후 결과를 던집니다(즉, 해당 간격에 넣습니다)
코드는 다음과 같습니다(최적화 아이디어를 구합니다)
으아아아발생한 문제: (in_array 판단은 이러한 간격의 값을 한 번만 계산할 수 있기 때문입니다.)
1. 계산된 값이 반드시 각 간격의 값을 가질 필요는 없습니다.
2 코드는 확장 가능하지 않습니다.
黄舟2017-05-24 11:35:58
이 질문에는 문제가 있다고 생각합니다. 그러한 입력은 조건을 만족하는 분포가 존재한다는 것을 보장하지도 않습니다.
함께{a: 60, b: 40}
为例:全排列的空间是{ab, ba}
. 그렇다면 정의에 따르면 다음과 같아야 합니다.