當前位置:首頁 » 操作系統 » 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的條件,符合要求繼續執行下一層的命令。

兄弟你這么寫代碼雖然沒有錯。可是有時候程序很長,邏輯比較復雜時候。建議是建立{}大括弧來規范代碼。
程序好執行,你也好思路搞清楚。

熱點內容
解壓喪屍片 發布:2024-04-27 01:02:28 瀏覽:369
編程師加班 發布:2024-04-27 00:49:24 瀏覽:909
lol四川伺服器雲空間 發布:2024-04-27 00:42:08 瀏覽:933
卡宴怎麼看配置 發布:2024-04-27 00:41:08 瀏覽:941
央視影音緩存視頻怎麼下載視頻 發布:2024-04-27 00:25:55 瀏覽:583
手機緩存的視頻怎麼看 發布:2024-04-27 00:11:05 瀏覽:57
shell腳本平方計算公式 發布:2024-04-26 23:29:26 瀏覽:187
比較實惠的雲伺服器 發布:2024-04-26 23:24:57 瀏覽:974
怎麼增加電腦緩存 發布:2024-04-26 23:23:46 瀏覽:451
android調試gdb 發布:2024-04-26 23:22:27 瀏覽:99