今天来分享一道有意思的数学题目,题目来自知乎的一个提问,具体题目是这样的:

有多少个含有不同数字的五位数abcde使得a>b>c>d>e?

乍一看这是一道高中数学题目,所用的知识无非就是排列组合的知识,下面我们来看如何用高中数学的方法来解决这个问题。

首先,注意题目中的一点是含有不同数字的五位数,其实a>b>c>d>e已经确保了各个数位上的数字都不相同。那么每个数位上的数字应该如何取呢?

首先,最高位上的数字a最小为4,最大为9,因此我们可以确定满足要求的最大和最小的五位数分别是43210和98765。那么如何计算一共 有多少个满足要求的五位数呢,让我们来按照首位数字的大小来一一分析:

排列组合的常用的数学方法(分享一道有趣的排列组合)(1)

解题过程

以上,我们利用高中的排列组合知识解决了这道题目。但是我们只能够计算出有多少个满足要求的五位数,至于这些数字都有哪些,写起来估计挺费劲的。下面我们利用C语言编程解决这一问题。程序代码如下:

#include<stdio.h> int Five(int n) { int i,j,n1=n; while(n>0) { i=n;//后一位 n=n/10; j=n;//前一位 if(j<=i)break; } if(n>0)return 0; else return n1; } int main() { int n,count=0; printf("满足要求的五位数如下:\n"); for(n=43210;n<=98765;n ) { if(Five(n)>0) { printf("%d\n",n); count ; } } printf("共有 %d 个满足要求的五位数\n",count); return 0; }

这里我们主要编写了一个判断一个五位数是否是满足题目要求的五位数的函数Five,其输入量是一个五位数,如果一个五位数是满足要求的五位数,Five函数就输出这个数,如果这个输入的五位数不满足题目的要求,Five函数就输出零。接下来我们只需要在43210和98765这个区间循环执行Five函数,就可以输出所有满足要求的五位数了。

程序运行结果如下:

排列组合的常用的数学方法(分享一道有趣的排列组合)(2)

程序运行结果

好了,今天和大家分享的数学题目就到这里了 ,关注我,有关于高中、初中、小学的数学题不会的可以给我留言,我会在第一时间更新解答。感谢大家的关注与支持。

,