當前位置:首頁 » 操作系統 » 最難演算法

最難演算法

發布時間: 2022-06-29 05:57:10

1. 史上最難的數學題,大家來算一算啊 有3個人去投宿,一晚30元.三個人每人掏了10元湊夠30元交給了

這個推理其實也是偷換概念。意義是想把人帶進3人各花10元的陷阱。3人各花10元=30元,老闆退還5元=25元+服務生偷藏2元=27元。退回每人一元即每人交9元 3人*9元=27元。即3人花的錢就是27元,老闆加服務生拿的錢也是27元。推理誤導在於想誤導每人花10元。但其實每人只花了9元住店。即3人共用27元。那服務生拿走的兩元不能加進顧客的錢里。
真實算式應為:顧客部分:3人各交10元=30元 老闆退費後各拿一元即每人交9元=27元。
老闆部分:收30元後退5元=25元 服務生拿走2元=27元(這里設計服務生是老闆方面的人。不算顧客。)
交的等於老闆方面收的。錢數是對的。服務生的兩元應該算在老闆方面,不在顧客方面

2. c語言高難度演算法,菜鳥勿進! ^_^

//我做出來了。
//輸入:A1,A3,A2,A8,A7,A6,A5,A4
//輸出:A1,A2,A3,A4,A5,A6,A7,A8
//只是對輸入的字串長度限制在100以內。
#include "stdio.h"
int main( )
{
char str1[100];
//輸入字元串
printf("請輸入字元串:");
scanf("%s",str1);
//對字元串分組
char str[50][3];
char *p=str1;
int i=0,j=0;
for(;*p!='\0';p++)
{
if(*p!=',')
{
str[i][j]=*p;
j++;
}
else
{
str[i][j]='\0';
i++;
j=0;
}

}
str[i][j]='\0';
i++;
j=0;
//對字串排序

for(j=0;j<i;j++)
for(int k=j+1;k<i;k++)
{
if(str[j][1]>str[k][1])
{
char temp;
temp=str[j][0];
str[j][0]=str[k][0];
str[k][0]=temp;
temp=str[j][1];
str[j][1]=str[k][1];
str[k][1]=temp;
}
}
//復制排序好的字串
p=str1;
for(j=0;j<i;j++)
{
*p=str[j][0];
p++;
*p=str[j][1];
p++;
if(j<i-1)
{
*p=',';
p++;
}
}
*p='\0';
//輸出排序好的字串
printf("排序後的符串:%s",str1);
printf("\n");
}

3. 演算法和建模最難的是思想還是技術

你可以先去【繪學霸】網站找「3d建模」板塊的【免費】視頻教程-【點擊進入】完整入門到精通視頻教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-373843074936449404

想要系統的學習可以考慮報一個網路直播課,推薦CGWANG的網路課。老師講得細,上完還可以回看,還有同類型錄播課可以免費學(贈送終身VIP)。

自製能力相對較弱的話,建議還是去好點的培訓機構,實力和規模在國內排名前幾的大機構,推薦行業龍頭:王氏教育。
王氏教育全國直營校區面授課程試聽【復制後面鏈接在瀏覽器也可打開】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-373843074936449404

在「3d建模」領域的培訓機構里,【王氏教育】是國內的老大,且沒有加盟分校,都是總部直營的連鎖校區。跟很多其它同類型大機構不一樣的是:王氏教育每個校區都是實體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學習模式,提升會很快,特別適合基礎差的學生。

大家可以先把【繪學霸】APP下載到自己手機,方便碎片時間學習——繪學霸APP下載: www.huixueba.com.cn/Scripts/download.html

4. 世界上最難的數學題到底是什麼

  1. 費馬最後定理

    對於任意不小於3的正整數 ,x^n + y^n = z ^n 無正整數解

  2. 哥德巴赫猜想

    對於任一大於2的偶數都可寫成兩個質數之和,即1+1問題

  3. NP完全問題

    是否存在一個確定性演算法,可以在多項式時間內,直接算出或是搜尋出正確的答案呢?這就是著名的NP=P?的猜想

  4. 霍奇猜想

    霍奇猜想斷言,對於所謂射影代數簇這種特別完美的空間類型來說,稱作霍奇閉鏈的部件實際上是稱作代數閉鏈的幾何部件的(有理線性)組合

  5. 龐加萊猜想

    龐加萊已經知道,二維球面本質上可由單連通性來刻畫,他提出三維球面(四維空間中與原點有單位距離的點的全體)的對應問題

  6. 黎曼假設

    德國數學家黎曼(1826~1866)觀察到,素數的頻率緊密相關於一個精心構造的所謂黎曼zeta函數ζ(s)的性態。著名的黎曼假設斷言,方程ζ(s)=0的所有有意義的解都在一條直線上

  7. 楊-米爾斯存在性和質量缺口

  8. 納衛爾-斯托可方程的存在性與光滑性

  9. BSD猜想

    像樓下說的1+1=2 並不是什麼問題的簡稱 而就是根據皮亞諾定理得到的一個加法的基本應用,是可以簡單通過皮亞諾定理和自然數公理解決的

5. 求24最難演算法。

5 5 5 1
5(5-1/5)= 24

6. 世界上最復雜的程序演算法有哪些

Jump-pointer: 在作LA(v,d)的時候, 如果一層一層的往上搜索很慢. 有沒有可能直接跳呢? 比如我們知道LA(u,d) = LA(v,d),如果u是v的一個ancestor. 如果直接儲存了LA(u,d), 並且可以在log(n)的時間"跳"到u, 那麼只要log n的時間就能找到LA(v,d). 這個演算法要用 O(n log n)的preprocess time + O(log n)的time. 每一次跳的距離是上一次的1/2倍.,[這個演算法很簡單的]。

7. 史上最難的算24點,等待高人破解!

24點一般只考慮加減乘除,不考慮開方和乘方。如果不要求速度的話,24點不存在難題。
一共四個數,設為ABCD。那麼24點的公式只有兩種情況。
1.3-1型:()@ X或者X@()
其中X表示任意一個數,@表示任意一種演算法,()內表示剩下三個數的任意組合。
比如A+B+C+D,A÷(B+C÷D),
2.2-2型:()#()
其中()表示任意兩個數的乘積或商,#表示加或減
比如A×B+C×D
或者()表示兩個數的和或差,#表示乘或除
比如(A+B)×(C-D)
事實上,4個數中,不同的兩個數的組合只有三種,而且2-2型幾乎不會涉及到分數。所以2-2型實際上非常容易觀察得出,比如2,4,6,10的答案是(2+10)×(6-4)
而3-1型比較復雜,有些題會算很長時間
顯然,1,1,2,12這種題我們一眼就能看出來,所以拿到題目時,我們先快速觀察一下是不是較簡單的題,或者是2-2型的題,很多題往往就解決了。問題是碰到了答案比較隱蔽的,或者是涉及到分數的,比如4,6,6,10該怎麼解決。
首先,通過最開始的觀察我們已經確定了不是2-2型,那麼一定就是3-1型。那麼我們可以把這個「1」提出來,假設是4,那麼只有以下五種可能,4+20,28-4,4×6,96÷4,4÷1/6
於是我們就看剩下的三個數能不能湊成20,28,6,96,1/6就可以了。因為只有三個數,這個過程是很快的,但是頭腦一定要保持清晰,不要因為簡單就誤算。
驗算後很顯然6×(10+6)=96,如果你沒有發現,我們再驗算6,
那麼剩下的三個數只需要組成4,18,30,1/4,144就可以了,稍微觀察一下便知4÷(6+10)=1/4
那麼最終答案就是6÷(4÷(6+10))=24
當然有些題只有一種答案,錯過了一種,就必須重新驗算了。
而其中也有一些方法,比如4,6,10顯然不能組成144,因為4×6×10才等於144的一半還不到,如果在中間添加加減除那麼數字肯定不夠大,當然,這些方法需要自己總結,積累經驗。
再看1,5,5,5這道題就比較簡單了,因為只有兩種數字,而且1顯然不是「1」,所以只需要驗證5就可以,那麼剩下的1,5,5需要組合成,5/24,24/5,19,29,120其中之一。
簡單計算一下,不難發現5-1/5=24/5
於是5×(5-1/5)=24
相對而言4,6,6,10就比較難,因為有三種數字,而且涉及到分數。
而2,7,8,9雖然有四種數字,但是計算的時候並沒有那麼復雜。
比如驗算7的時候,需要剩下的三個數組成168,17,7/24,24/7,31。
很顯然7/24和24/7不用考慮,因為剩下三個數不可能同時組成7和24,168很顯然也不可能,因為把剩下三個數乘起來也沒有168。當然了,這種經驗式的判斷需要你多加練習。
那麼最終我們會發現這組數的「1」是8,答案是
2×(7+9)-8
任何一個題目,用這種方法算,一定可以算出來,如果你足夠熟練的話,根本沒有難題。所以說算24點考驗的是你的熟練度而不是智商,當然也沒有所謂的「史上最難」了。

8. 【比較難寫的演算法】最壞情況線性時間的選擇

實際上比平均情況下線性時間的選擇要復雜很多(演算法導論上偽代碼都沒有)
問題是快速排序要求樞紐元在最後一個,如果採用hoare的劃分演算法,就沒有這個要求。而給出的是樞紐元的值,然後要找到位置(搜索一遍),再交換。
如果採用hoare劃分法,不用搜索,不過演算法和書上描述的就稍有不同了。

另外,因為代碼復雜,所以對於隨機輸入,此演算法較慢
下面是hoare劃分的選擇代碼

# include <ctime>
# include <cstdlib>
# include <iostream>

inline void swap(int &x, int&y)
{
int temp = x;
x = y;
y = temp;
}

// A[p..r]
int hoarePartitionX(int *A, int p, int r, int x)
{
int i = p - 1;
int j = r + 1;

for(;;)
{
while( A[--j] > x)
;
while( A[++i] < x)
;
if(i<j)
{
swap(A[i], A[j]);
}
else
{
return j;
}
}
}

// A[0..size-1]
void insertionSort(int *A, int size)
{
int i;
int key;

for(int j=1; j<size; j+=1)
{
key = A[j];
i = j - 1;
while(i >= 0 && A[i] > key)
{
A[i+1] = A[i];
i -= 1;
}
A[i+1] = key;
}
}

// return the ith smallest element of A[p..r]
int select(int *A, int p, int r, int i)
{

if(p == r) // only one element, just return
{
return A[p];
}

// #1. groupNum & rest
int groupNum = (r - p + 1) / 5; // not counting the rest
int rest = (r - p + 1) % 5;

// #2. sort the groups

for(int t=0; t<groupNum; t+=1)
{
insertionSort(A + p + t*5, 5);
}

if(rest != 0)
{
insertionSort(A + p + groupNum * 5, rest);
}

// #3. get the mid value x
int *mids;
if(rest == 0)
mids = new int[groupNum];
else
mids = new int[groupNum+1];

for(int t=0; t<groupNum; t+=1)
{
mids[t] = A[ p + t*5 + 2 ];
}
if(rest != 0)
{
mids[groupNum] = A[ p + groupNum*5 + (rest-1)/2 ];
}

int x;
if( rest == 0 )
{
x = select(mids, 0, groupNum-1, (groupNum-1) / 2 + 1);
}
else
{
x = select(mids, 0, groupNum, groupNum / 2 + 1);
}

delete []mids;

// #4. partition with x
int k = hoarePartitionX(A, p, r, x) - p + 1; // so the value A[p+k-1] is the kth smallest

// #5.
if(i <= k)
{
return select(A, p, p+k-1, i);
}
else
{
return select(A, p+k, r, i-k);
}
}

int main()
{
int array[100];
for(int i=0; i<100; i+=1)
array[i] = i;

for(int i=0; i<100; i+=1)
{
int rnd = rand()%100;
swap(array[0], array[rnd]);
}

std::cout << select(array, 0, 99, 82);

std::cin.get();
return 0;
}

熱點內容
在香港怎麼買安卓手機 發布:2024-11-16 03:15:37 瀏覽:761
存儲sp 發布:2024-11-16 03:14:08 瀏覽:849
電視機存儲功能 發布:2024-11-16 03:12:50 瀏覽:869
極品飛車17安卓怎麼安裝 發布:2024-11-16 03:12:13 瀏覽:316
長春java 發布:2024-11-16 03:10:47 瀏覽:577
性價比高的台式電腦怎麼配置 發布:2024-11-16 03:04:58 瀏覽:631
軟體測試學python 發布:2024-11-16 02:55:39 瀏覽:563
sql2008數據同步 發布:2024-11-16 02:33:46 瀏覽:928
sql2008sa密碼 發布:2024-11-16 02:33:45 瀏覽:199
pr清緩存 發布:2024-11-16 02:31:28 瀏覽:656