HERE是geeksforgeeks解決方案。我無法理解findCeil()部分。 第四步:在前綴數組中找到第三步生成的隨機數的Ceil索引。讓索引爲indexc。任意概率分佈方式的隨機數發生器
// Utility function to find ceiling of r in arr[l..h]
int findCeil(int arr[], int r, int l, int h)
{
int mid;
while (l < h)
{
mid = l + ((h - l) >> 1); // Same as mid = (l+h)/2
(r > arr[mid]) ? (l = mid + 1) : (h = mid);
}
return (arr[l] >= r) ? l : -1;
}
有人可以請解釋正在做什麼。
有什麼特別的東西你不明白嗎?也許是「>>」或「?」。在不縮小查詢範圍的情況下,您將得到如下答案:「首先,它聲明一個名稱爲」mid「的整數...並且您將重新獲得已讀過的內容。 – Kevin
對不起。我打算問一下findCeil的目的是什麼。什麼是findCeil在這裏做什麼。舉個例子 – Walt