C++中陣列中存在鍵K的機率


給定一個大小為'n'的陣列,任務是找到如果給定元素k在陣列中,則該元素的機率。

遍歷整個陣列直到'n'(等於陣列中的元素個數),並搜尋給定元素或鍵'k'。如果該元素存在於陣列中,則計算其機率;否則,列印0。

輸入

arr[] = { 1, 2, 3, 4, 5, 6}
K = 5

輸出

probability of a key 5 in an array is :0.166

輸入

arr[] = { 1,2,3,4,5,6,7 }
K = 8

輸出

probability of a key 5 in an array is :0

解釋

上面給定的是一個大小為7的陣列和一個鍵2,因此陣列將被遍歷7次以搜尋鍵值2。每當識別出2時,將一個臨時變數(例如計數器)遞增1;如果元素不是2,則無需遞增計數器,直接移動到下一個元素。最後:

  • 如果計數器為0,則表示鍵不存在於陣列中,則機率為0

  • 如果計數器為0以外的任何值,則應用公式計算鍵“k”的機率

    機率(k) = “k”出現的總數 / 元素總數

    “K”出現的總數 = 4

    陣列中的元素總數 = 7

    鍵(k)的機率 = 4 / 7 = 0.57

演算法

Start
Step 1→ declare function to calculate probability of key in an array
   float probab_key(int arr[], int size, int key)
      declare float count = 0
      Loop For int i = 0 and i < size and i++
      IF arr[i] = key
         Set count++
      End
   End
   return count / size
Step 2→ In main()
   Declare int arr[] = { 1, 2, 3, 4, 5, 6}
   Declare int key = 5
   Declare int size = sizeof(arr) / sizeof(arr[0])
   Call probab_key(arr, size, key)
Stop

示例

線上演示

#include <bits/stdc++.h>
using namespace std;
// calculate the probability of a key in an array
float probab_key(int arr[], int size, int key){
   float count = 0;
   for (int i = 0; i < size; i++){
      if (arr[i] == key)
         count++;
   }
   return count / size;
}
int main(){
   int arr[] = { 1, 2, 3, 4, 5, 6};
   int key = 5;
   int size = sizeof(arr) / sizeof(arr[0]);
   cout <<"probability of a key "<<key<<" in an array is :"<<probab_key(arr, size, key);
   return 0;
}

輸出

如果執行上述程式碼,它將生成以下輸出:

probability of a key 5 in an array is :0.166667

更新於:2020年8月13日

256 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告