基础数学题
li_wei_quan
这个作者很懒,什么都没留下…
展开
-
最简单的奇数阶幻方(魔方)算法详解
幻方,就是一个N*N的矩阵中填入1至N^2,使得每行、每列,以及两条对角线上的数之和都相等。当N为奇数时,可用以下的方法来填数。(1)将1填入第一行的中间;(2)将数字下一个数填在右上方。 (i)出现越界。若越过第一行,则折返回最后一行。若越过最后一列,则折返回第一列。 (ii)没越界,但右上方已有数了,此时将其填在上一个数的正下方。(3)对于矩阵的最右上方的格子(原创 2015-12-19 21:22:20 · 8378 阅读 · 0 评论 -
求将n个互异的正整数变成上升序列时的最少交换次数
问题:有n个互异的正整数,定义将任意两个数的位置进行交换称为一次操作。求将n个数变成上升序列时的最少操作数。 当n=11时,有序列8 3 9 1 5 6 11 4 7 10 2,现在要把它通过交换变成上升序列1 2 3 4 5 6 7 8 9 10 11。可以看出,'8'应该放在第8个位置,而在第8个位置的'4'应该被交换到第4个位置,而在第4个位置的‘1’应该被交换到第1个...原创 2017-02-15 17:08:22 · 1457 阅读 · 3 评论 -
求逆元的两种方法
方法1:扩展欧几里德只能用于求a int inv(int a, int p){ if(a == 1) return 1; return inv(p%a, p) * (p-p/a) % p;}方法2:费马小定理a^(p-1)=1(% p) => a^(p-2) = 1/a(% p) => a^(p-2) = a^(-1)(% p)a的模p逆原创 2017-05-10 22:13:09 · 586 阅读 · 0 评论 -
2017年蓝桥杯B组C/C++ 第10题
K倍区间 有N个数的数列A1,A2,...,An,定义S(i, j) = Ai+Ai+1+……+Aj(i。如果S(i, j)能被正整数k整除,那么称S(i, j)为K倍区间。测试数据共两行。第一行为两个正整数N和k,第二行为N个不同的正整数。 输入样例1:5 21 2 3 4 5输入样例2:5 31 2 3 4 5输出样例1:6输出样例2:原创 2017-05-05 17:36:09 · 629 阅读 · 0 评论 -
佩尔(Pell)方程
于是可以得到递推式:,k>=1例题1:HDU2281 Square Number题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=228112+22+……+n2= n(n+1)(2n+1)/6将原创 2017-04-27 22:37:41 · 1720 阅读 · 0 评论 -
广师OJ 2239 一道数学题 解题报告
题目链接 http://114.215.99.34/#/enter/problem?pid=2239一道数学题【问题描述】Jq不懂高数,其实他也不懂数学,最近他又被一道数学题难倒了。请你帮帮他吧。找出小于等于正整数N的使得(2^n-1)能被7整除的正整数n的个数。【输入描述】输入整数N(0 【输出描述】对于每个N,输出相应的答案.【输入样例】原创 2017-07-10 06:36:26 · 634 阅读 · 0 评论 -
阿里巴巴在线笔试编程题2题
前言:上周五参加了阿里巴巴的在线笔试,包含半小时10条选择题和一小时2条编程题。题目1:有两个非负数a和b,求两者的和。注意a和b可能是小数,输出结果不包含多于的0。输入:12.3 5输出:17.5参考代码:#include<iostream>#include<string>using namespace std;string first, second, ans;...原创 2018-05-14 15:48:36 · 9479 阅读 · 11 评论