php - 확률적 알고리즘 정렬
过去多啦不再A梦
过去多啦不再A梦 2017-05-24 11:33:58
0
2
755

각 확률 간격에 결과가 있도록 확률에 따라 데이터를 정렬하는 방법은 무엇입니까?

예를 들어 다음과 같은 데이터 세트가 있다고 가정해보세요

으아아아

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 코드는 확장 가능하지 않습니다.

저에게도 조언과 조언을 해주시기를 바랍니다. 모두 감사합니다!

过去多啦不再A梦
过去多啦不再A梦

모든 응답(2)
黄舟

이 질문에는 문제가 있다고 생각합니다. 그러한 입력은 조건을 만족하는 분포가 존재한다는 것을 보장하지도 않습니다.

함께{a: 60, b: 40} 为例:全排列的空间是{ab, ba}. 그렇다면 정의에 따르면 다음과 같아야 합니다.

으아악
我想大声告诉你

내가 쓴 것과 똑같다 == 나도 확장하는 방법을 알고 싶다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿