当前位置:首页 » 操作系统 » 28大神算法

28大神算法

发布时间: 2022-08-07 01:50:18

㈠ 数字游戏,求大神解答提供算法

1、每一大组,把1到49这49个自然数分成24个和25个数字两个小组。
2、任意两小组数据重复的号码不能超过10个。
这样的条件能生成1组。


证明:

  1. 分成一组是显然可行的。

  2. 假如可以分成两组,比如A大组和B大组,那么B1小组和B2小组中,至少有一个与A1小组相同的号码超过10个。(当然,B1小组和B2小组中,至少有一个与A2小组相同的号码超过10个)

㈡ 19999+9999×9999的简便算法

19999+9999×9999的简便算法
19999+9999×9999
=10000+9999+9999×9999
=10000+9999×(1+9999)
=10000+9999×10000
=10000×(1+9999)
=10000×10000
=100000000
(2)28大神算法扩展阅读:
乘法分配律:
两个数相加(或相减)再乘另一个数,等于把这个数分别同两个加数(减数)相乘,再把两个积相加(相减),得数不变。
用字母表示:
(a+b)× c=a×c+b×c
变式:
(a-b)× c=a×c-b×c

㈢ 跪求C语言算法神,大整数除法超简单代码(通过)的原理

这就是一个除法运算的。你除法怎么算,它就算算的,就是一个模拟过程。只不过他用了累积减除数的方法代替了乘法的运算,这个只对应于二个数长度差不多的时候,才有效率。
首先,judge这个是比较函数。比如二个字符串对应数字的大小。
比如 283456 / 7
temp2是每个位上的数, temp1是被除数。
一开始 。
temp2 = 0
temp1=0;

temp1 = multi1(temp1, 5);
temp1 = multi1(temp1, 2);
这二句有点多余,就是一个乘以10的操作。可以直接移字符串末尾加个‘0’

先是 temp2=2 temp1=temp1*10+temp2= 2 由于2<7继续循环
接下来是temp2=8 temp1=temp1*10+temp2=28 28>7 。 不断累减,相当 于
a=28 ,b=7 while(a>b) { a=a-b; } 这个样子。
。。。
过程就是这样。

㈣ 怎么计算天干地支的算法大神们帮帮忙

天干地支简称“干支”,取义于树木的干和枝 天干有十:甲、乙、丙、丁、戊(wù)、己、庚、辛、壬(rén)、癸(guǐ); 地支十二:子、丑、寅、卯(mǎo)、辰(chén)、巳(sì)、午、未(wèi)、申、酉(yǒu)、戌(xū)、亥。 天干地支组合成如下六十个计时序号,作为纪年、月、日、时的名称,叫“干支纪年法”。 编辑本段六十甲子顺序 1 ~10 甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉 11~20 甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未 21~30 甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳 31~40甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯 41~50甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑 51 ~60甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥 用六十甲子依次纪年,六十年一个轮回。干支纪年法的新一年由立春开始,2009年的立春是二月四日,所以2009年2月4日立春之后才是己丑年,在此之前应是戊子年。公元纪年的一年以立春为界前后分属不同的干支纪年,这一点不熟悉的人容易搞错,应特别注意。 编辑本段与公元纪年的换算 第一种算法: 如何将公元纪年换算成干支纪年: 不同资料算法有所差异,有的给出公式,但本质上是一回事。这里介绍一种简易直观的算法。 首先给每个天干、地支一个编号,从头以4开始循序排下去,天干10后接1,。地支12后接1。 天干:甲4、乙5、丙6、丁7、戊8、己9、庚10、辛1、壬2、癸3 地支:子4、丑5、寅6、卯7、辰8、巳9、午10、未11、申12、酉1、戌2、亥3 以公元年的尾数在天干中找出对应该尾数的天干,再将公元纪年除以12,用除不尽的余数在地支中查出对应该余数的地支,这样就得到了公元纪年的干支纪年。如2003年,其尾数为3,对应的天干为“癸”;以12除2003得166,余数为11,对应的地支为未。于是2003年的干支纪年为“癸未”年。注意这是指2003年立春之后,立春之前应是“壬午”年。赵达先生在“祭文”中指出的时间是“癸未清明”,清明是立春之后的第四个节气(立春、雨水、惊蛰、春分、清明),所以赵先生说岁在癸未,而非壬午。 第二种算法: 1. 天干算法:用公元纪年数减3,除以10(不管商数)所得余数,就是天干所对应的位数; 2. 地支算法:用公元纪年数减3,除以12(不管商数)所得余数,就是地支所对应的位数; 天干:甲、乙、丙、丁、戊、已、庚、辛、壬、癸 地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥 例1. 我们以2010年为例; 天干算法: 2010-3=2007, 2007/10=200余7, 7对应天干第7位是庚,即天干为庚; 地支算法: 2010-3=2007, 2007/12=167余3, 3对应地支第3位是寅,即地支为寅; 综上公元2010是用天干地支纪年为庚寅年。为使各位信任此算法,本人再举一例来说明: 例2. 我们再以1987年为例; 天干算法: 1987-3=1984, 1984/10=198余4, 4对应天干第4位是丁,即天干为丁; 地支算法: 1987-3=1984, 1984/12=165余4, 4对应地支第4位是卯,即地支为卯; 综上公元1987是用天干地支纪年为丁卯年。 第三种算法: 首先,将天干、地支编号如下: 天干:甲、乙、丙、丁、戊、已、庚、辛、壬、癸 4 5 6 7 8 9 10 1 2 3 地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥 4 5 6 7 8 9 10 11 12 1 2 3 如要将公元纪年换算成干支纪年,以公元年的尾数在天干中找出相对应。然后,将公元纪年除以12,用余数在地支中找出所对应的地支。这样,公元纪年就换算成了干支纪年。 如:公元1995年 用该年尾数5找出对应的天干为“乙”;然后,用1995除以12得余数为3,用余数3找出相对应的地支为“亥”。 那么,公元1995年则为农历乙亥年。 再如:公元1861年 用尾数1查天干为“辛”,用1861除以12得余数为1,再用余数1查找地支为“酉”。那么,公元1861年则为农历辛酉年。 如果某一年的尾数为0或者用该年除以12的余数为0,则取天干中的第10位“庚”和地支中的第12位“申”。 如:公元120年 尾数0则取天干中的“庚”;除以12余数为0,则取地支中的第12位“申”。 那么,公元120年则为庚申年。 如果公元纪年是单个数字,就用该数字在天干、地支中查找即可。如:公元6年,则在天干、地支中找出6相对应的“丙”和“寅”,那么该年则为丙寅年。公元8年则为戊辰年。 公元11年,则取尾数1对应的天干中的“辛”和11对应的地支中的“未”。那么,该年则为辛未年。 公元12年则为壬申年。 公元前纪年与干支纪年的换算 将天干、地支编号如下: 天干:甲、乙、丙、丁、戊、已、庚、辛、壬、癸 7 6 5 4 3 2 1 10 9 8 地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥 9 8 7 6 5 4 3 2 1 12 11 10 具体换算方法同一 如:公元前155年 用尾数5取天干中的“丙”; 155除以12得余数11,对应地支中的“戌”。那么,该年则为丙戌年。 公元前8年则为癸丑年 天干地支纪月 干支纪月时,每个地支对应二十四节气自某节气(非中气)至下一个节气,以交节时间决定起始的一个月期间,不是农历某月初一至月底。许多历书注明某农历月对应某干支,只是近似而非全等对应。若遇甲或己的年份,正月大致是丙寅;遇上乙或庚之年,正月大致为戊寅;丙或辛之年正月大致为庚寅,丁或壬之年正月大致为壬寅,戊或癸之年正月大致为甲寅。依照正月之干支,其余月份按干支推算。60个月合5年一个周期;一个周期完了重复使用,周而复始,循环下去。东汉光武帝建武二十九年癸丑年(公元53年)冬至月(大雪至小寒的月份,近似农历十一月)就是“甲子月”。有歌诀为证:甲己之年丙作首,乙庚之岁戊为头;丙辛必定寻庚起,丁壬壬位顺行流;更有戊癸何方觅,甲寅之上好追求。 下表是地支纪月时对应的节气时间段、中气、近似农历月份、近似阳历月份、以及年天干和月地支构成的月干支: 月地支 节气时间段 中气 近似农历月份 近似阳历月份 甲或己年 乙或庚年 丙或辛年 丁或壬年 戊或癸年 寅月 立春—惊蛰 雨水 正月 2月 丙寅月 戊寅月 庚寅月 壬寅月 甲寅月 卯月 惊蛰—清明 春分 二月 3月 丁卯月 己卯月 辛卯月 癸卯月 乙卯月 辰月 清明—立夏 谷雨 三月 4月 戊辰月 庚辰月 壬辰月 甲辰月 丙辰月 巳月 立夏—芒种 小满 四月 5月 己巳月 辛巳月 癸巳月 乙巳月 丁巳月 午月 芒种—小暑 夏至 五月 6月 庚午月 壬午月 甲午月 丙午月 戊午月 未月 小暑—立秋 大暑 六月 7月 辛未月 癸未月 乙未月 丁未月 己未月 申月 立秋—白露 处暑 七月 8月 壬申月 甲申月 丙申月 戊申月 庚申月 酉月 白露—寒露 秋分 八月 9月 癸酉月 乙酉月 丁酉月 己酉月 辛酉月 戌月 寒露—立冬 霜降 九月 10月 甲戌月 丙戌月 戊戌月 庚戌月 壬戌月 亥月 立冬—大雪 小雪 十月 11月 乙亥月 丁亥月 己亥月 辛亥月 癸亥月 子月 大雪—小寒 冬至 十一月 12月 丙子月 戊子月 庚子月 壬子月 甲子月 丑月 小寒—立春 大寒 十二月 1月 丁丑月 己丑月 辛丑月 癸丑月 乙丑月 干支纪月法未普遍实行,主要为星相家推算八字用。 推算实例:2004年大致是农历甲申年。那次甲申年自2004年2月4日19时56分立春起,至2005年2月4日1时43分立春止。这里的时刻是东经120度标准时。 丙寅月,2004年2月4日19时56分立春~2004年3月5日13时56分惊蛰 丁卯月,2004年3月5日13时56分惊蛰~2004年4月4日18时43分清明 戊辰月,2004年4月4日18时43分清明~2004年5月5日12时2分立夏 己巳月,2004年5月5日12时2分立夏~2004年6月5日16时14分芒种 庚午月,2004年6月5日16时14分芒种~2004年7月7日2时31分小暑 辛未月,2004年7月7日2时31分小暑~2004年8月7日12时20分立秋 壬申月,2004年8月7日12时20分立秋~2004年9月7日15时13分白露 癸酉月,2004年9月7日15时13分白露~2004年10月8日6时49分寒露 甲戌月,2004年10月8日6时49分寒露~2004年11月7日9时59分立冬 乙亥月,2004年11月7日9时59分立冬~2004年12月7日2时49分大雪 丙子月,2004年12月7日2时49分大雪~2005年1月5日14时3分小寒 丁丑月,2005年1月5日14时3分小寒~2005年2月4日1时43分大寒 天干地支纪日 干支纪日,60日大致合2个月一个周期;一个周期完了重复使用,周而复始,循环下去。确定的文献指出干支纪日始于鲁隐公三年夏历二月己巳日(公元前720年二月初十)。 因为儒略历的平年有365日,而每4年一次,公元年能被4整除,闰年有366日,平均一年365.25日,所以4年1461日和一甲子的60日,最小公倍数是29220日,合80年。这就是说,每80年,干支纪日对应的儒略历月日日期会反复一次循环。(公元4年本来应为闰年,但因为公元前45年开始实施儒略历后,“每隔3年”加一次闰日被误为“每3年”加一次闰日,所以罗马皇帝屋大维下令前5年、前1年、4年停闰以修正错误置闰。) 因为格里历的平年有365日,而每4年一次闰年,但是如果遇上整百年,公元年能被400整除才能认定为闰年(这是因为按照现在立法计算,四年一闰的规定使每年多出0.0078天,经过400年大约会多出3天,如果在能被400整除年份的前面3个百年不算闰年,则正好平衡),闰年有366日,平均一年365.2425日,所以400年146097日和一甲子的60日,最小公倍数是2921940日,合8000年。这就是说,每80年,干支纪日对应的格里历月日日期若没有遇到能被100但非400整除的公元年,会反复一次循环,但整体而言,假设未来从不改格里历,每8000年,干支纪日对应的格里历月日日期才会反复一次完整的循环。1912年2月18日,合农历壬子年正月初一,以及9912年2月18日,都是“甲子日”。 天干地支纪时 干支纪时,60时辰合5日一个周期;一个周期完了重复使用,周而复始,循环下去。必须注意的是子时分为0时到1时的早子时和23时到24时的晚子时,所以遇到甲或己之日,0时到1时是甲子时,但23时到24时是丙子时。晚子时又称子夜或夜子。日上起时亦有歌诀:甲己还加甲,乙庚丙作初;丙辛从戊起,丁壬庚子居;戊癸何方发,壬子是真途。下表列出日天干和时辰地支构成的时辰干支,以北京时间(UTC+8)为准: 时辰地支 北京时间(UTC+8)甲或己日 乙或庚日 丙或辛日 丁或壬日 戊或癸日 子时 23时—1时 甲子时 丙子时 戊子时 庚子时 壬子时 丑时 1时—3时 乙丑时 丁丑时 己丑时 辛丑时 癸丑时 寅时 3时—5时 丙寅时 戊寅时 庚寅时 壬寅时 甲寅时 卯时 5时—7时 丁卯时 己卯时 辛卯时 癸卯时 乙卯时 辰时 7时—9时 戊辰时 庚辰时 壬辰时 甲辰时 丙辰时 巳时 9时—11时 己巳时 辛巳时 癸巳时 乙巳时 丁巳时 午时 11时—13时 庚午时 壬午时 甲午时 丙午时 戊午时 未时 13时—15时 辛未时 癸未时 乙未时 丁未时 己未时 申时 15时—17时 壬申时 甲申时 丙申时 戊申时 庚申时 酉时 17时—19时 癸酉时 乙酉时 丁酉时 己酉时 辛酉时 戌时 19时—21时 甲戌时 丙戌时 戊戌时 庚戌时 壬戌时 亥时 21时—23时 乙亥时 丁亥时 己亥时 辛亥时 癸亥时 天干地支次序表 1. 甲子 2.乙丑 3.丙寅 4.丁卯 5.戊辰 6.己巳 7.庚午 8.辛未 9.壬申 10.癸酉 11.甲戌 12.乙亥 13.丙子 14.丁丑 15.戊寅 16.己卯 17.庚辰 18.辛巳 19.壬午 20.癸未 21.甲申 22.乙酉 23.丙戌 24.丁亥 25.戊子 26.己丑 27.庚寅 28.辛卯 29.壬辰 30.癸巳 31.甲午 32.乙未 33.丙申 34.丁酉 35.戊戌 36.己亥 37.庚子 38.辛丑 39.壬寅 40.癸卯 41.甲辰 42.乙巳 43.丙午 44.丁未 45.戊申 46.己酉 47.庚戌 48.辛亥 49.壬子 50.癸丑 51.甲寅 52.乙卯 53.丙辰 54.丁巳 55.戊午 56.己未 57.庚申 58.辛酉 59.壬戌 60.癸亥 天干地支的计算方法 (年份- 3)/10余数对天干 如1894-3=1891 ,1891除以10余数是1即为甲 (年份- 3)/12余数对地支 如1894-3=1891 ,1891除以12余数是7即为午 即1894年是甲午年 编辑本段其他相关 天干地支纪年法同时可纪年、月、日、时,分别称为“年柱、月柱、日柱、时柱”。此八个字就是俗称的“八字”。一个人的八字就是他出生时间的四柱记录。关于月、日、时的天干地支纪法,已使用不多,有兴趣的读者可去查阅有关资料。 十二地支与十二生肖对应,即子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊、申猴、酉鸡、戌狗、亥猪。

㈤ 29cf78e47d7a28a5这个md5解密是多少大神速度回答啊

MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。
谢谢
请采纳

㈥ 关于JAVA快速排序算法问题,请大神指教啊!!!

//我按着你的思路写的,自己看看吧,我运行过,结果正确
public class QuickSort {
public static void main(String[] args) {
int[] array = new int[]{2,5,3,8,7,0,1,4,6,9,10};
int left = 0;
int right = array.length-1;
qsort(array,left,right);
for(int index:array){
System.out.print(index+" ");
}
}
public static void qsort(int[] array,int left,int right){
int p;
if(left<right){
p = partition(array,left,right);
qsort(array,left,p-1);
qsort(array,p+1,right);
}
}
public static int partition(int[] arr,int left,int right){
int temp_val;
int temp_r, temp_l, temp_m;
temp_r = right;
temp_l = left;
temp_m = left;
boolean flag = true;
while(temp_l < temp_r){
if(flag){
if(arr[temp_m] > arr[temp_r]){
temp_val = arr[temp_m];
arr[temp_m] = arr[temp_r];
arr[temp_r] = temp_val;
temp_m = temp_r;
flag = false;
}
temp_r --;
}else{
if(arr[temp_m] < arr[temp_l]){
temp_val = arr[temp_m];
arr[temp_m] = arr[temp_l];
arr[temp_l] = temp_val;
temp_m = temp_l;
flag = true;
}
temp_l ++;
}
}
return temp_m;
}
}

㈦ AES算法是基于GF(2^8)数域的,其中的0x02与其他数相乘时,不大于0x80左移,大于要与0x1b异或,0x1b哪来的

你看的很细嘛,其实不用理解那么详细,我跟你说一下
大于不大于0x80其实指的最高位是不是1,因为小于1x80的数只要左移(乘2)就可以了,不涉及到进位,而大于或等于0x80的数,最高位是1,左移就会溢出了,而溢出后的数就不在有限域里了,为了实现进位溢出和仍然停留在有限域里的矛盾就要找个方法
结果就是溢出的时候与0x1b异或,0x1b怎么来的呢,你肯定知道GF(28)的不可约多项式吧,m(x)=x8+x4+x3+x+1,它的二进制就是0x1b

㈧ 急求助,C语言,计算两个日期之间的天数,不知道我的算法到底哪里错了,运行结果是错误的,求大神帮忙看看

没仔细看,其实这个题目不难,就是计算三个数,用三个子函数来解决
前边的年剩下的天数,中间隔得年的天数,还有后边的年的天数
全局数组
int moth[12]={31,28,31,30,31,60,31,31,30,31,30,31};
int qian(struct Date *pt1)
{
int day=0;

if() //判断闰年
noth[1]=29;
else
moth[1]=28;
for(int i=pt1.month-1;i<12;i++) //计算这个月到12月份的所有天数

day+=moth[i];
day-=moth[pt1.month-1]-pt1.day; //减去日期中的day的天数

return day;

}

int zhong(struct Date *pt1,struct Date *pt2)
{
int i,day=0;

for(i=pt1.year;i<pt2.day;i++)
{

day+=365;
if() //闰年判断
day++;
}

return day;

}

int hou(struct Date *pt2)
{
int i,day=0;
if() //判断闰年
noth[1]=29;
else
moth[1]=28;
for(i=0;i<pt2.month-1;i++)
day+=moth[i];
day+=pt2.day;
return day;

}

下面是加起来

int i,day=0;

if(pt1.year==pt2.year)
{
if(pt1.month==pt2.month) //同年同月

day=pt2.day-pt1.day;
else //同年不同月

{
if() //判断闰年
noth[1]=29;
else
moth[1]=28;
for(i=pt1.month-1;i<=pt2.month;i++)
day+=moth[i];
day=day+tp2.day-pt1.day;

}

}
else //不同年

day=qian(struct Date *pt1)+zhong(struct Date *pt1,struct Date *pt2)+hou(struct Date *pt2);

㈨ 递归,有哪个大神给我讲讲这个递归的意思啊

我认为递归就是按顺序从上往下一层层按照设计者的意思去执行。
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
比如这段代码 如果i<=0,那么符合条件继续往下运行程序,然后就是else if的条件,符合要求继续执行下一层的命令。

兄弟你这么写代码虽然没有错。可是有时候程序很长,逻辑比较复杂时候。建议是建立{}大括号来规范代码。
程序好执行,你也好思路搞清楚。

热点内容
安卓手机java模拟器 发布:2024-05-07 12:43:07 浏览:912
c语言java哪个好学 发布:2024-05-07 12:35:16 浏览:334
奥特曼访问 发布:2024-05-07 12:34:38 浏览:893
离线存储本地存储 发布:2024-05-07 12:30:23 浏览:412
win764sql2000安装 发布:2024-05-07 12:18:07 浏览:77
beego上传文件 发布:2024-05-07 11:59:20 浏览:211
安卓如何设置拒接来电 发布:2024-05-07 11:56:25 浏览:570
锐志丐版有哪些配置 发布:2024-05-07 11:50:23 浏览:325
虚拟usb加密狗安装 发布:2024-05-07 11:41:14 浏览:867
武汉中南医院无线网密码是多少 发布:2024-05-07 11:20:22 浏览:357