数学
Jaster_wisdom
程序员
展开
-
将球放入盒中的方法数总结(球盒模型问题)
本篇博客主要讲解球盒模型问题中所有情况,因为该问题是组合数学中的最常见的一类问题,所以有必要在这里详细地说一说。该类问题涉及到三个因素,分别是球、盒子、盒子是否可以为空。所以大概可以将该问题分为以下八种情况:1.将r个无区别的球放入n个有标志的盒中,盒内数目无限制,有多少种情况?2.将r个有区别的球放入n个有标志的盒中,没有一个盒子为空,有多少种情况?3.将r个无区别的球放入n个有标志的盒中,没有一原创 2017-11-11 15:38:59 · 10731 阅读 · 1 评论 -
蓝桥杯-表达式的计算(带括号)
题目大意:这是一道表达式求值的题。题干要求是表达式中可以出现括号,表达式的合法性不需要判断。输出表达式的值。题目分析:这是一道使用栈的常规题,也是栈这种数据结构的经典的应用--表达式求值。首先,我们建立两个栈,一个数字栈,存放数字;另一个存放操作符栈。给每一个运算符一个优先级,规定+,-的优先级为1;*,/的优先级为2;(的优先级为3;)的优先级为0;当面对一个表达式时,我们从左往右依次分析:1)...原创 2018-03-04 11:27:43 · 1267 阅读 · 0 评论 -
蓝桥杯-数字游戏
问题描述: 给定人的个数n, 取的模值k, 栋栋要报的数字个数T, 求T个数字之和问题分析: 本题最直接的做法是 模拟这个报数的过程,每两个人之间的差值 在逐渐增加,每次都加一。把每个人要报的数 放在一个sayDigit数组里,这个数组保留n个元素,分别是每轮每个人要报的数,当栋栋报完之后,立即累加到结果中。代码展示:#include <iostream>using namespac...原创 2018-03-24 01:06:32 · 457 阅读 · 0 评论 -
蓝桥杯-核桃的数量 (求三个数的最小公倍数)
题目大意:输入三个数,求出三个数的最小公倍数题目解析:为了求出三个数的最小公倍数,我们可以先求出其中两个数的最小公倍数,然后再将它与第三个数求一个最小公倍数。我们知道,最大公约数的求法可以通过欧几里德算法(辗转相除法)求解。辗转相除法:求两个数a,b的最大公约数的一般方法。假定(a>=b),不断地求a,b相除得到的余数,直到余数为0. 若余数不为0,将b的值赋给a,将余数的值赋给b. 最后输...原创 2018-03-20 16:07:10 · 868 阅读 · 0 评论 -
蓝桥杯-三角形 已知三点求三角形周长、面积、外心、重心
题目大意:已知三点求三角形周长、面积、外心、重心,将结果保留两位小数题目分析:周长很好求,只要将三条线段的长度相加即可。面积的求法有专门的公式,比较快捷。外心是三角形三条线段上中垂线交点,求法是求出两条中垂线,然后求它们的交点即可。重心是三条中线的交点,只要求出三点的均值即可。((x1+x2+x3)/3,(y1+y2+y3)/3)代码展示:#include <iostream>#in...原创 2018-03-26 08:26:03 · 5860 阅读 · 0 评论 -
leetcode7. 颠倒整数(栈实现)
题目大意:将一个32位的整数颠倒输出,注意如果颠倒后的整数超过了int表示的范围,则输出0题目分析:首先,明确32位整数可表示的范围是[-2^31,2^31-1]。 当颠倒的数超过这个范围,则输出0. 本题主要使用栈来实现,从高到低位,依次求得每位数,并将其压入栈中。然后将栈中的元素依次弹出,注意前几次若是0,则不考虑,直到出现第一个非零元素,之后出现的零由于不在首位,所以都要考虑在内。代码展示:...原创 2018-04-10 21:06:10 · 504 阅读 · 0 评论 -
LeetCode18. 四数之和
题目大意:在一个数字序列中找出不重复的四个元素,使得它们的和等于目标值target题目分析:本题和LeetCode15 三数之和思路基本相同,只要设置两重循环,先固定前两个数,后两个数的话,只要分别用两个指针指向剩余元素的一头一尾,若当前的和比target大,则后面的指针前移;若当前的和比target小,则前面的指针后移;相等的话,就保存一下。因为结果不能有重复,所有在多处需要去重。去重的思路和L...原创 2018-06-05 21:32:13 · 517 阅读 · 0 评论 -
LeetCode50. Pow(x,n)
题目大意:实现一个计算机中求指数幂的操作。题目分析:我觉得这道题是不需要考虑大数问题的,因为如果幂取到2^30的级别,底数取2的话,这个结果是无法用float或double表示的。本题在计算过程中需要优化,常规的解法会出现内存不够的情况。我们知道,求a的n次方,可以用以下公式来表示:当n为偶数时,就是第一种情况;当n为奇数时,是第二种情况。同时,可以用n>>1位操作代替除以2,效率更高...原创 2018-06-10 12:40:56 · 244 阅读 · 0 评论 -
LeetCode349. 两个数组的交集
给定两个数组,写一个函数来计算它们的交集。例子: 给定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].提示:每个在结果中的元素必定是唯一的。 我们可以不考虑输出结果的顺序。题目分析:首先,将num1的元素存进s1,完成了一步去重;同样,将num2的元素存进s2,也完成了一步去重;将所有的元素存进s. 所以s=s1s2,要求的是s1s2. ...原创 2018-08-05 21:28:19 · 640 阅读 · 0 评论