| 查看: 1930 | 回復(fù): 19 | |||
holmescn金蟲 (正式寫手)
|
[交流]
Euler 工程 第廿四題:全排列的第100萬項 已有5人參與
|
|
一個排列是一組對象的一個有序排列。比如3123是數(shù)字1、2、3和4的一個可能的排列。如果把所有的排列按照其數(shù)字or字母的大小順序都列出來,那就成為一個全排列。比如0、1、2的全排列是: 012 021 102 120 201 210 那么,數(shù)字0、1、2、3、4、5、6、7、8和9的全排列的第100萬項是多少? |
金蟲 (著名寫手)

金蟲 (著名寫手)
|
非蠻力版也有,不過不是自己想出來的,就不好意思直接貼代碼了,基本想法就是數(shù)制的擴(kuò)展: 二進(jìn)制數(shù)制是這個樣子: a1*2^n+a2*2^(n-1)+...+an*2^1+a*2^0 十進(jìn)制數(shù)制是這樣子: b1*10^n+b2*10^(n-1)+...+bn*10^1+b*10^0 那我們可以考慮階乘進(jìn)制: c1*n!+c2*(n-1)!+...+cn*1!+c*0! 不過階乘有點(diǎn)問題就是1!是1,0!是0,那就失去了最后一個的意義,所以最后一個去掉: c1*n!+c2*(n-1)!+...+cn*1!+c 那前面的6個數(shù)就依次是: 0=0*2!+0*1!+0 => 012 1=0*2!+1*1!+0 => 021 2=1*2!+0*1!+0 => 102 3=1*2!+1*1!+0 => 120 4=2*2!+0*1!+0 => 201 5=2*2!+1*1!+0 => 210 上面的計算當(dāng)然跟一般的進(jìn)制計算不同,一般的進(jìn)制計算是要求前面的數(shù)不能大過模數(shù),二進(jìn)制的前綴只能是0和1,十進(jìn)制的前綴只能是0~9,而階乘進(jìn)制的前綴就只能是0~n,n是指后面的n!,以3=>120為例,前面的運(yùn)算應(yīng)該是這樣子: 2!:012,前綴就是take out的索引,例子的是1 1!:02,例子中的是1,拿走的就是2 0!:0,剩下來的沒得選擇,這也是每個末尾都是0的原因 組合起來就是120 |

木蟲 (著名寫手)
至尊木蟲 (著名寫手)
驃騎將軍

鐵桿木蟲 (著名寫手)
|
此題改小一點(diǎn)可以做初中或小學(xué)奧數(shù)題了... 10!=3628800, 10!/10=362880 1000000/362880=2.75------(0123456789)第一位是2 1000000-362880*2=274240 362880/9=40320 274240/40320=6.80------(013456789)第二位是7 274240-40320*6=32320 40320/8=5040 32320/5040=6.40------(01345689)第三位是8 32320-5040*6=2080 5040/7=720 2080/720=2.89------(0134569)第四位是3 2080-720*2=640 720/6=120 640/120=5.33------(014569)第五位是9 640-120*5=40 120/5=24 40/24=1.67------(01456)第六位是1 40-24*1=16 24/4=6 16/6=2.67------(0456)第七位是5 16-6*2=4 6/3=2 4/2=2------(046)第八位是4 此處已實現(xiàn)整除,后三位必為4開頭的最大數(shù),即460. 所以最后結(jié)果為 2783915460... |
至尊木蟲 (著名寫手)
驃騎將軍

金蟲 (正式寫手)
|
暈,發(fā)晚了 樓上怎么沒人帖答案和時間了? 我的想法是利用階乘直接算。因為一個全排列,其實就是每個元素都要在一個位置上出現(xiàn)一次。這樣一共有n!個排列(這個地球人都知道)。 這樣,如果某一位確定了的話,那么其余的位再用其余的數(shù)全排列就行了。(這話怎么這么繞口) 已經(jīng)知道10!=3628800,9!=362880,這樣1000000 - 2*9! = 274240, 也就是說第一位取0,1都不夠數(shù),取2,而后面的沒的完成全排列就夠100萬了。OK,第一位是2了。 下面列表: 8! = 40320 274240 - 6 * 8! = 32320 第2位:7 7! = 5040 32320 - 6 * 7! = 2080 第3位:8 6! = 720 2080 - 2 * 6! = 640 第4位:3 5! = 120 640 - 5 * 5! = 40 第5位:9 4! = 24 40 - 1 * 4! = 16 第6位:1 3! = 6 16 - 2 * 3! = 4 第7位:5 2! = 2 4 - 2 * 2! = 0 最后剩:0 4 6 這三個數(shù)了. 而最后一個余0了。也就是第2個排列正好就夠第100萬個了.這樣結(jié)果就是:2783915460 不知道結(jié)果是不是對。這個用時當(dāng)然很少的了。 |
鐵桿木蟲 (著名寫手)
金蟲 (正式寫手)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 299求調(diào)劑 +5 | shxchem 2026-03-20 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 299求調(diào)劑 +4 | 某某某某位 2026-03-21 | 4/200 |
|
|
[考研] 306求調(diào)劑 +4 | chuanzhu川燭 2026-03-18 | 4/200 |
|
|
[考研] 求調(diào)劑 +6 | Mqqqqqq 2026-03-19 | 6/300 |
|
|
[考研] 一志愿山大07化學(xué) 332分 四六級已過 本科山東雙非 求調(diào)劑! +3 | 不想理你 2026-03-16 | 3/150 |
|
|
[考研] 310求調(diào)劑 +3 | baibai1314 2026-03-16 | 3/150 |
|
|
[考研] 材料工程(專)一志愿985 初試335求調(diào)劑 +3 | hiloiy 2026-03-17 | 4/200 |
|
|
[考研] 二本跨考鄭大材料306英一數(shù)二 +3 | z1z2z3879 2026-03-17 | 3/150 |
|
|
[考研] 材料專碩英一數(shù)二306 +7 | z1z2z3879 2026-03-18 | 7/350 |
|
|
[考研] 一志愿中海洋材料工程專碩330分求調(diào)劑 +8 | 小材化本科 2026-03-18 | 8/400 |
|
|
[考研] 一志愿南京理工大學(xué)085701資源與環(huán)境302分求調(diào)劑 +4 | 葵梓衛(wèi)隊 2026-03-18 | 6/300 |
|
|
[考研] 一志愿南理工085701環(huán)境302求調(diào)劑院校 +3 | 葵梓衛(wèi)隊 2026-03-20 | 3/150 |
|
|
[考研] 環(huán)境工程調(diào)劑 +9 | 大可digkids 2026-03-16 | 9/450 |
|
|
[考研] 工科材料085601 279求調(diào)劑 +7 | 困于星晨 2026-03-17 | 9/450 |
|
|
[考研] 085601材料工程專碩求調(diào)劑 +10 | 慕寒mio 2026-03-16 | 10/500 |
|
|
[考研] 收復(fù)試調(diào)劑生 +4 | 雨后秋荷 2026-03-18 | 4/200 |
|
|
[考研] 材料,紡織,生物(0856、0710),化學(xué)招生啦 +3 | Eember. 2026-03-17 | 9/450 |
|
|
[考研] 生物學(xué)071000 329分求調(diào)劑 +3 | 我愛生物生物愛?/a> 2026-03-17 | 3/150 |
|
|
[考研] 085601求調(diào)劑 +4 | Du.11 2026-03-16 | 4/200 |
|
|
[考研] 東南大學(xué)364求調(diào)劑 +5 | JasonYuiui 2026-03-15 | 5/250 |
|