算法题每日一练---第16天:好好学习

简介: 汤姆跟爷爷来中国旅游。一天,他帮助中国的小朋友贴标语。他负责贴的标语是分别写在四块红纸上的四个大字:“好、好、学、习”。但是汤姆不认识汉字,他就想胡乱地贴成一行。

一、问题描述


汤姆跟爷爷来中国旅游。一天,他帮助中国的小朋友贴标语。他负责贴的标语是分别写在四块红纸上的四个大字:“好、好、学、习”。但是汤姆不认识汉字,他就想胡乱地贴成一行。


请你替小汤姆算一下,他这样乱贴,恰好贴对的概率是多少?


答案是一个分数,请表示为两个整数比值的形式。例如:1/3 或 2/15 等。如果能够约分,请输出约分后的结果。


二、题目要求


考察

数学思想,全排列公式应用
建议用时5~15min


三、问题分析


题目出现了四个汉字,分别为好、好、学、习,不同的汉字有三个,相同的汉字有两个。题目要求我们在所有的排列组合中,找到正确的一种,问题的规模不是很大,深搜(DFS)对于这样一道问题来说明显不适用。

主要用下面两种方法:


1.暴力法

直接用全排列一步解决,输出所有可能的结果,从中判断最正确的情况。

全排列公式:

do{
}while(next_permutation(a,a+10));

全排列公式头文件algorithm,或者使用万能头文件bits/stdc++.h

注意

使用全排列的时候,要保证数组的最小的顺序,否则输出会不完整。


2.直接分析法

正确排列的话一共有四个位置,其中第一个字 好 排列正确的概率为1/2,第二个字 好 排列正确的概率为1/3,第三个字 学 排列正确的概率为1/2,习 因为是最后一个字,概率为1。

四个概率彼此相乘:1/2* 1/3 * 1/2=1/12,因此结果就为1/12。


四、编码实现


#include<iostream>#include<algorithm>//全排列头文件 usingnamespacestd;
intmain()
{
inti,n=4,ans=0;
inta[4]={1,1,2,3};//分别使用数字代表好好学习 do    {
for(i=0;i<4;i++)//输出结果         {
cout<<a[i]<<" ";
        }
cout<<"\n";
ans++;//总排列数++     }while(next_permutation(a,a+n));//全排列列出所有可能的结果 cout<<ans;//输出结果 return0;
}


五、输出结果


输出具体结果为:1/12

5.png


相关文章
|
20天前
|
存储 算法 Go
算法学习:数组 vs 链表
算法学习:数组 vs 链表
23 0
|
24天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】43. 算法优化之Adam算法【RMSProp算法与动量法的结合】介绍及其Pytorch实现
【从零开始学习深度学习】43. 算法优化之Adam算法【RMSProp算法与动量法的结合】介绍及其Pytorch实现
|
24天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】40. 算法优化之AdaGrad算法介绍及其Pytorch实现
【从零开始学习深度学习】40. 算法优化之AdaGrad算法介绍及其Pytorch实现
|
24天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
|
20天前
|
算法 搜索推荐 JavaScript
算法学习:快速排序
算法学习:快速排序
15 1
|
9天前
|
算法 Java
《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
6 0
|
1月前
|
存储 算法 C语言
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
30 1
|
1月前
|
存储 算法 测试技术
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
22 1
|
10天前
|
机器学习/深度学习 人工智能 算法
技术经验解读:【转】完美洗牌算法学习
技术经验解读:【转】完美洗牌算法学习
|
18天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】Apriori算法在关联规则学习中的应用
【机器学习】Apriori算法在关联规则学习中的应用
46 0