精华内容
下载资源
问答
  • 奇数偶数公式

    千次阅读 2020-11-06 10:20:53
    一、求小于n有多少个奇数和偶数(包括0) 奇数有:i/2+1个 偶数有:(i+1)/2个 二、程序中的应用 题目:所有奇数长度的数组之和 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原...
    一、求小于n有多少个奇数和偶数(包括0)

    奇数有:i/2+1个
    偶数有:(i+1)/2个

    二、程序中的应用

    题目:所有奇数长度的数组之和

    给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。

    子数组 定义为原数组中的一个连续子序列。

    请你返回 arr 中 所有奇数长度子数组的和 。

    示例 1:

    输入:arr = [1,4,2,5,3]
    输出:58
    解释:所有奇数长度子数组和它们的和为:
    [1] = 1
    [4] = 4
    [2] = 2
    [5] = 5
    [3] = 3
    [1,4,2] = 7
    [4,2,5] = 11
    [2,5,3] = 10
    [1,4,2,5,3] = 15
    我们将所有值求和得到 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/sum-of-all-odd-length-subarrays

    题解:

    这道题目首先第一反应就是暴力求解了,直接俩个for循环遍历所有可能的情况就能得出结果,这里就不贴代码了。下面重点说一下第二种思路。
    第二中方法就是我们不用列出所有的奇数数组,只需要求下标i,在数组中分割左边0-i奇数偶数有多少个,右边n-i-1有多少个奇数偶数。然后数nums[i]在奇数组中出现的次数则是loddrodd+levenreven次,那么在最后res中nums[i]出现次数则是loddrodd+levenreven,依次循环遍历则可以得到结果,时间法度O(n),空间O(1)

    func sumOddLengthSubarrays(arr []int) int {
    	var res = 0
    	var lEven, lOdd, rEven, rOdd = 0, 0, 0, 0
    	for i := 0; i < len(arr); i++ {
    		lEven = i/2 + 1
    		lOdd = (i + 1) / 2
    		rEven = (len(arr)-i-1)/2 + 1
    		rOdd = (len(arr) - i) / 2
    		res += arr[i] * (lEven*rEven + lOdd*rOdd)
    	}
    	return res
    }
    
    

    用好公式可以事半功倍

    展开全文
  • 偶数

    2019-10-04 18:58:22
    给定一个正整数n,请输出杨辉三角形前n行的偶数个数对1000003取模后的结果。 输入输出格式 输入格式: 一个数 输出格式: 结果 输入输出样例 输入样例#1: 6 输出样例#1: 6 说明 对于30%的...

    题目描述

    给定一个正整数n,请输出杨辉三角形前n行的偶数个数对1000003取模后的结果。

    输入输出格式

    输入格式:

    一个数

    输出格式:

    结果

    输入输出样例

    输入样例#1:
    6
    
    输出样例#1:
    6

    说明

    对于30%的数据,n<=4000

    对于70%的数据,n<=4*10^9

    对于100%的数据,n<=10^15

    题解:

    正如这题所示,数据在n<=10^15的范围内则引导我们去寻找空间更节省,速率更高效的算法。

    首先,很明显,杨辉三角之特点在于其行数即等于每行的数字数。因此,可以很容易使用求和公式求出1到n行一共有多少个数字。

    其次,通过观察,可以发现,奇数个数比偶数个数更有规律,其规律在于:

    每行奇数个数一定为2^k(k为自然数)

    当行数恰为2^k(k为自然数)时,奇数个数为2^k,偶数个数为零

    当行数恰为2^k(k为自然数)时,奇数个数和恰为3^(k-1)

    更巧妙的是:这个规律能更加扩展到一个不为2^k的数上,因为每一个数,都能分解为若干项2^k的和的形式。

     

    举个例子吧:当n=2333;

     

    2333= 2048+256+16+8+4+1

     

    通过暴力程序,我们可以找出2333的所有奇数个数为190985

     

    那么,我们找出如下数字

     

    行数 所有奇数个数

     

    2048 177147

     

    256 6561

     

    16 81

     

    8 27 4 9 1 1

     

    我们可以巧妙发现:177147 + 6561*2 + 81*4 + 27*8 + 9*16 + 1*32恰好等于190985!

     

     

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 long long k,t,n,ans,nx,mi3[1001],d,mod=1000003,a[1001],p;
     5 int main()
     6 {long long i;
     7 //freopen("11.in","r",stdin);
     8     scanf("%lld",&n);
     9     nx=n;
    10      k=0;
    11     d=1;
    12     for (i=1;i<=51;i++)
    13     d*=2;
    14      t=51;
    15     while (n)
    16     {
    17         if (n>=d)
    18         {
    19             n=n-d;
    20             a[++k]=t;    
    21         }
    22         d/=2;
    23         t--;
    24     }
    25     n=nx;
    26     mi3[0]=1;
    27     for (i=1;i<=a[1];++i)
    28      {
    29         mi3[i]=(mi3[i-1]*3)%mod;
    30      }
    31   
    32   for (i=1;i<=k;++i)
    33      ans=(ans+mi3[a[i]]*(long long)(1<<(i-1)))%mod;
    34     //cout<<ans<<endl;
    35     ans%=mod;
    36      p=(((n%mod)*(n%mod+1)))/2;
    37     p%=mod;
    38     if (p<ans)p+=mod;
    39     p=(p-ans)%mod;
    40 printf("%lld\n",p);
    41 }

     

    转载于:https://www.cnblogs.com/Y-E-T-I/p/7106076.html

    展开全文
  • 然后很喜悦,打了100表,发现真的是这个规律,就像哥伦布发现新大陆一样,于是开始默默地推公式。。。 发现不是很好推,我把这个结论告诉了yb,以为他有简单的方法解决一下,最后我还是自己拿了纸和笔到...
    Treasure Hunt IV

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    Alice is exploring the wonderland, suddenly she fell into a hole, when she woke up, she found there are b - a + 1 treasures labled a from b in front of her.
    Alice was very excited but unfortunately not all of the treasures are real, some are fake.
    Now we know a treasure labled n is real if and only if [n/1] + [n/2] + ... + [n/k] + ... is even.
    Now given 2 integers a and b, your job is to calculate how many real treasures are there.

    Input

    The input contains multiple cases, each case contains two integers a and b (0 <= a <= b <= 263-1) seperated by a single space. Proceed to the end of file.

    Output

    Output the total number of real treasure.

    Sample Input

    0 2
    0 10
    

    Sample Output

    1
    6
    

    Author: QU, Zhe
    Contest: ZOJ Monthly, July 2012


    题目大意:给你一个区间,问你这个区间内的特殊数有多少,特殊数n的定义是n/1+n/2+n/3+....+n/n为偶数即可。

        解题思路:不要左想右想,直接打表看奇数偶数的特性,开始打了20,发现是1个0,3个1,5个0,7个1。。。。然后很喜悦,打了100表,发现真的是这个规律,就像哥伦布发现新大陆一样,于是开始默默地推公式。。。

    发现不是很好推,我把这个结论告诉了yb,以为他有简单的方法解决一下,最后我还是自己拿了纸和笔到旁边推公式去了。

    可以找规律,区间落点分别是1 2^2 3^2 4^2 5 ^2
    1.直接开根号,看他们在哪个区间。
    2.如果他们在一个区间,直接求和即可。
    3.看他们落在奇数点还是偶数点,然后分情况讨论。
    4.推0个数的求和个数公式。

    好吧,我又坑了。
    第一发wa是因为从0开始计数的,而我是从1开始计数的,所以a,b都要加1,再计算。然后还是wa了,就在看自己公式哪里推错了,,,,实际上是一个地方爆了long long,唉,做题不谨慎啊。。。。

    题目地址:Treasure Hunt IV


    AC代码:
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    
    int main()
    {
        unsigned long long a,b;
        unsigned long long p1,p2;
    
        //printf("%lld\n",(1<<63)-1);
    
    
        unsigned long long ans,t1,t2;
        while(cin>>a>>b)
        {
            a++,b++;
            p1=sqrt(a+0.5);
            p2=sqrt(b+0.5);
    
            if(p1==p2)  //如果他们落到了同一个地方
            {
                if(p1&1)
                {
                    if(p1*p1==a)
                        printf("1\n");
                    else
                        printf("0\n");
                }
                else
                {
                    if(p1*p1==a)
                        cout<<b-a<<endl;
                    else
                        cout<<b-a+1<<endl;
                }
                continue;
            }
            
            ans=0;
            if(p1&1)  //ok
            {
                if(p1*p1==a)
                  ans+=1;
                t1=p1+2;
            }
            else
            {
                if(p1*p1==a)
                    t1=p1+1;
                else
                {
                    ans+=(p1+1)*(p1+1)-a+1;  //就是这个地方爆的long long啊,巨坑。。
                    t1=p1+3;
                }
            }
    
            if(p2&1)
            {
                t2=p2;
            }
            else
            {
                ans+=b-p2*p2;
                t2=p2-1;
            }
    
            t1=(t1+1)/2,t2=(t2+1)/2,t1--;
    
            //下面是用公式计算中间的0,个数为1,5,9,13,
            //通项为4n-3,求和公式为(2n-1)*n
            if(t2>=t1)
                ans=ans+(2*t2-1)*t2-(2*t1-1)*t1;
    
            cout<<ans<<endl;
        }
        return 0;
    }
    
    /*
    0 11538571374624767
    5769285672726615
    123 321
    87
    */
    




    展开全文
  • 题意:给你一个有1到n的n个数的集合,求这个集合的非空子集的子集...思路:因为和为偶数,所以一定是由2*x个奇数+y个偶数组成,从中就可以推出公式为2^(n-1)-1 代码: #include #include #include #include #in

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5363

    题意:给你一个有1到n的n个数的集合,求这个集合的非空子集的子集所有元素的和为偶数的子集个数

    思路:因为和为偶数,所以一定是由2*x个奇数+y个偶数组成,从中就可以推出公式为2^(n-1)-1

    代码:

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    #define LL __int64
    #define mod 1000000007
    
    LL quick_pow(LL n)
    {
        LL ans=1;
        LL a=2;
        while(n)
        {
            if(n&1)
                ans=ans*a%mod;
            a=a*a%mod;
            n>>=1;
        }
        return ans;
    }
    
    int main()
    {
        int T,n;
        while(scanf("%d",&T)==1)
        {
            while(T--)
            {
                scanf("%d",&n);
                printf("%I64d\n",quick_pow(n-1)-1);
            }
        }
        return 0;
    }


    展开全文
  • pku3372(找规律公式,推理)

    千次阅读 2010-08-05 14:42:00
    http://162.105.81.212/JudgeOnline/problem?id=3372<br />  这题有个很神奇的公式,没什么可说的,以下内容转自:LonelyBoy、笨小孩_sunhaowen。 题意:N个小孩围成一个圈,老师 顺时针隔 0, 1,...
  • §1 数的分类和基本运算规律 1. 数的分类  2. 数的扩张   自然数  (减法)↓  整数  (除法)↓  有理数(即分数)  (极限)↓  实数  (代数方程)↓  复数 3. 基本运算率  
  • 这道题目的规律是奇数项之间的增量有规律偶数项之间的增量有规律,发现这个后,能写出通项公式。这里要注意除法取余问题。 自己推出的公式: 这里需要解决的只有除法取余:( 转自该博客 )  1.可以用...
  • a为偶数时怎么算,m一定为偶数,所以a^b%m的结果也为偶数,那么b^a%m的结果也必须为偶数,所以b必须为偶数,a既然为偶数那么一定可以写成2*x,所以a^b=2^b*x^b,又m=2^n显然可以发现如果b>=n那么a^b%m一定为0,这个...
  • 题目大意:给你一个区间,问你这个区间内的特殊数有多少,特殊数n的定义是n/1+n/2+n/3+....+n/n为偶数就可以。  解题思路:不要左想右想,直接打表看奇数偶数的特性,開始打了20,发现是1个0。3个1。5个0,7个1...
  • 对哥德巴赫猜想证明的最后结论,哥德巴赫猜想偶数公式进行了大范围验证对比,理论计算结果与客观实际结果表明:模根剩余判定素数得到的素数条件通式、中心对称分布剩余点定理和计算偶数表法数的数学规律是真实可信的;...
  • 偶数求和

    2015-07-27 11:21:39
    本题是一道水题,但是我用的数学方法,找数列的规律,前n项和公式,每m项平均数的规律,m+1,3m+1,5m+1,7m+1,往后一直延伸。以下是我写的代码。 #include int main() {  int n,m,i,j;  while(scanf("%d%d",&...
  • 题目大意:给定一个n,定义S(n) = T(1) + T(2) + T(3)…..+T(n),T(n...思路:S的奇偶性肯定和T的奇偶性有关,T[i]如果是奇数我们可以用1表示,偶数用0表示,通过打表发现T[i] = 1的时候数列 是这样的1 2 4 8 9 16 1...
  • 首先打表的话可以很容易找到一个规律:a为奇数时,答案肯定为1,这个规律很容易看出就不证了(其实我也不会证 T_T),详细解释一下a为偶数时怎么算,m一定为偶数,所以a^b%m的结果也为偶数,那么b^a%m的结果也必须为...
  • 三角函数公式

    2019-09-02 22:37:56
    文章目录诱导公式公式公式公式公式公式公式六两角和公式倍角公式半角公式和差化积积化和差万能公式 诱导公式 记忆规律:奇变偶不变,符号看向限 奇偶是指π2\frac{\large\pi}{\large2}2π​的奇数倍或...
  • 哥德巴赫猜想偶数公式的计算机验证庄 严1 庄宏飞2辽阳铁路器材厂 辽宁辽阳 (111000)Email: zy1818sd@摘要:摘摘要要::本文选用各种不同性质的偶数,对哥德巴赫猜想证明的最后结论,“哥德巴赫猜想偶数公式”进行...
  • 在揭示了其内在规律的基础上,通过恒等式变形,化求和为求积,进而应用等差级数中的均值公式和素数定理,推导出相关的曲线回归方程,初步解决了哥德巴赫猜想、孪生素数猜想和N生素数猜想等数论难题。
  • EXCEL函数公式

    热门讨论 2010-03-16 03:26:38
    excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按...
  • 斐波那契数列类推,可以发现规律为 奇,奇,偶,奇,奇,偶,…,奇,奇,偶 所以n%3==0的n对应偶数,否则是奇数
  • 打表规律

    2020-04-18 00:42:08
    直接上代码 求大佬教我如何让复制...公式 a+2x=b+sum[n]; a-b=c; sum[n]-c=2x; x=(sum[n]-c)/2; x为整数 也就是sum[n]-c为偶数 规律就是如此打表 #include<cstdio>#include<cstring>#include<cmat...
  • excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能...
  • P1494杨辉三角形中的偶数个数 Accepted 标签:curimit[显示标签] 背景 curimit最近心情特别不好,尤其是看到偶数。 描述 某天,curimit在玩耍时,发现了一个纸头...
  • 超级偶数(SuperEven)是指每一位都是偶数的正整数,例如: 0,2,4,6,8,20,22,24,26,28,40,...,88,200,202,... 要求写一个函数,输入项数n,返回数列第n项的值。 说实话,这个题目整整花了我三天时间去思考(数学...
  • 在自然界和人类活动中,发生的现象多种多言,有确定性现象(例如偶数能够被2整除),也有不确定的随机现象(例如新生婴儿是男孩还是女孩)。概率论便是一门研究随机现象的统计规律性的数学学科。 随机现象在一次...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,155
精华内容 2,862
关键字:

偶数的规律的公式