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 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告