字母概率

题目描述
小明最近对概率问题很感兴趣。一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母在这个单词中出现的概率。字母不区分大小写。
例如,给定的字母是a,单词是apple,那么概率是0.20000。
输入

输入包含多组测试数据。每组数据包含一个字母和一个单词。

单词的长度不超过200。
输出

对于每一个输入,输出对应的概率,结果保留5位小数。

样例输入

a apple
c Candy
a banana

样例输出

0.20000
0.20000
0.50000

AC代码

#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>

using namespace std;

int main()
{
    char ch;
    string s;
    //cin可以连续读入一个字符和一个字符串
    while (cin >> ch >> s)
    {
        //cnt表示字符出现的次数
        int cnt = 0;
        //遍历字符串,若当前元素与指定的元素相同,结果加一
        for (int i = 0; i < s.size(); i++)
        {
            //字符相同(不考虑大小写)
            if (s[i] == ch || char(s[i] + 32) == ch || char(s[i] - 32) == ch ) cnt += 1;
        }
        double res = (double)cnt / s.size();     
        printf("%.5lf\n",res);        
    }
    return 0;
}

总结规律:
关于字符串的题,大部分都可以使用cin/cout进行读入和输出,或者使用getline(cin,s)来读入一行字符串,使用string s来定义字符串,使用s.size()来得到字符串的长度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Python程序,可以实现批量读取txt文件并统计字母概率: ```python import os # 定义一个函数,用于统计字母概率 def count_letter_prob(file_path): # 定义一个字典,用于存储字母出现次数 letter_count = {} # 定义一个变量,用于记录总字母数 total_letters = 0 # 读取文件内容 with open(file_path, 'r') as f: content = f.read() # 统计字母出现次数 for letter in content: if letter.isalpha(): letter = letter.lower() if letter in letter_count: letter_count[letter] += 1 else: letter_count[letter] = 1 total_letters += 1 # 计算字母概率 letter_prob = {} for letter, count in letter_count.items(): letter_prob[letter] = count / total_letters return letter_prob # 定义一个函数,用于批量读取txt文件并统计字母概率 def batch_count_letter_prob(folder_path): # 定义一个字典,用于存储每个文件的字母概率 file_prob = {} # 遍历文件夹下的所有txt文件 for file_name in os.listdir(folder_path): if file_name.endswith('.txt'): file_path = os.path.join(folder_path, file_name) file_prob[file_name] = count_letter_prob(file_path) return file_prob # 测试批量读取txt文件并统计字母概率的函数 folder_path = './txt_files' file_prob = batch_count_letter_prob(folder_path) for file_name, letter_prob in file_prob.items(): print(file_name + ':') for letter, prob in letter_prob.items(): print(letter + ': ' + str(prob)) print('----------------') ``` 在这个程序中,我们定义了两个函数,分别是`count_letter_prob`和`batch_count_letter_prob`。`count_letter_prob`函数用于统计单个txt文件中字母概率,`batch_count_letter_prob`函数用于批量读取txt文件并统计字母概率。在`count_letter_prob`函数中,我们首先定义了一个字典`letter_count`,用于存储字母出现次数;然后读取文件内容,并遍历文件中的每个字符,如果是字母,则将其转换为小写字母,并更新`letter_count`字典中相应字母的出现次数;最后计算字母概率,并返回一个字典`letter_prob`,其中键为字母,值为概率。在`batch_count_letter_prob`函数中,我们首先定义了一个字典`file_prob`,用于存储每个文件的字母概率;然后遍历文件夹下的所有txt文件,将每个文件的字母概率存储到`file_prob`字典中,并最终返回`file_prob`字典。在测试代码中,我们指定了一个文件夹路径`./txt_files`,并调用`batch_count_letter_prob`函数进行测试。程序将遍历该文件夹下的所有txt文件,并输出每个文件的字母概率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值