
C/C++
Whomio
Some things are not immediately understood, but need a brewing process.
展开
-
仿射变换
/**********************c=E[a,b](m)=am+b(mod 26)m=D[a,b](c)=a^(-1)(c-b)(mod 26)0<=a,b<=25;gcd(a,26)=1支持大小写英文字母**********************/#include <bits/stdc++.h>using namespace std;...原创 2019-01-10 20:31:31 · 436 阅读 · 0 评论 -
背包密码
/************************背包向量A={a1,a2,....,an}是超递增的,B为公开钥,t、k为私钥每个明文用一个5位的二进制表示00000-11010每组包含两个明文s为背包容积,若是s>=an,则说明xn=1,若s<a,则说明xn=0c=B*m(mod k)=t*A*m(mod k)m为二进制代码,c为整数A*m=c*t^(-1)...原创 2019-01-10 20:29:28 · 1728 阅读 · 1 评论 -
b进制运算之一--和
求两个任意进制(b)数之和的基本思路:1.从两个数的最低位开始,直至检索完一个较小的数,且每位相加,存至字符串中。2.较大数的多余部分直接拼接在上述字符串中。3.需要注意的是:定义一个数组,用来存储此时两个数相加是否大于b。下面是求和函数//b进制之和string BigNumSum(string a, string b,int numb){ int len_a = a.leng原创 2017-11-19 23:35:16 · 894 阅读 · 0 评论 -
有限简单连分数求解
有限连分数求解的基本思路: 设分数fn,整数部分z,非整数部分r,[x]表示不超过x的最大整数。 (0)令z0=[fn],r0=fn-z,0&amp;lt;= r&amp;lt; z。 (1)若r0=0,则终止。否则,令z1=[1/r0],r1=1/r0-z1。 (2)若r1=0,则终止。否则,令z2=[1/r1],r2=1/r1-z2。 (3)如此循环下去,直至...原创 2017-12-07 22:03:29 · 2271 阅读 · 1 评论 -
模重复平方运算
#include&amp;lt;stdio.h&amp;gt;//模重复平方运算int qe2(int x,int y,int m){ int a=1,b=x,n=y; while(n){ if(n&amp;amp;1) a=(a*b)%m; b=(b*b)%m; n&amp;gt;&amp;gt;=1; }原创 2018-07-26 16:20:02 · 1319 阅读 · 0 评论 -
顺序表的基本操作
//库函数头文件包含#include <stdio.h>#include <malloc.h>#include <stdlib.h>//函数状态码定义#define OK 1#define ERROR 0#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10ty原创 2017-12-18 20:24:13 · 343 阅读 · 0 评论 -
模为奇素数的原根求解
此问题的基本思路: 定理:设p为奇素数,p-1的所有不同素因数q1,¨¨¨qs,则g是模p原根的充要条件是 g的(p-1)/qi次幂(/≡)1(mod p),i=1,¨¨¨s (1)求任一原根g ①求p-1的素因数q1,¨¨¨qs ②求得e=(p-1)/q, q=q1,¨¨¨qs ③判断g的e次幂模p是否同余1,g为2,3,4,5,¨¨¨等,逐个原创 2017-11-11 11:31:29 · 3187 阅读 · 0 评论 -
循环队列的基本操作
下面是循环队列的定义和基本操作://定义函数状态码#define OK 1#define ERROR 0#define OVERFLOW -2//初始长度,扩容时增加的长度#define INIT_SIZE 20#define INCREASESIZE 10typedef int Status;//函数返回状态typedef int QElemType;//整型为例//循环队列存储结构定原创 2017-10-11 11:25:04 · 702 阅读 · 0 评论 -
时间和日期类(III)
Input 输入的第一个整数n,表示有n组测试数据。 后面的输入每行为一组测试数据。每组测试数据的前3个整数是日期的年月日,后3个整数是时间的时分秒。Output 每组测试数据对应一行输出。日期的输出格式为“yyyy-mm-dd”,时间的输出格式为“hh:mm:ss”,中间用一个空格分开。Sample Input 3 1982 10 1 0 0 0 2000 2 28 23 59 59原创 2017-09-16 19:15:59 · 562 阅读 · 0 评论 -
寻找大富翁
输入格式: 输入首先给出两个正整数N(≤106)和M(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。数字间以空格分隔。输出格式: 在一行内按非递增顺序输出资产排前M位的大富翁的个人资产值。数字间以空格分隔,但结尾不得有多余空格。输入样例: 8 3 8 12 7 3 20 9 5 18输出样例: 20 18原创 2017-09-16 18:57:31 · 553 阅读 · 0 评论 -
多表变换
/******************C=AM+BM=A^(-1)(C-B)******************/#include<iostream>#include<string>#include<math.h>#include<iomanip>using namespace std;int GetdetA(int **a...原创 2019-01-10 20:33:02 · 335 阅读 · 0 评论