緊急!!! c 求迴圈向量的最大值和最小值

發布 教育 2024-04-20
11個回答
  1. 匿名使用者2024-02-08

    1.如果完全使用這個**,則有問題,並且來自n的輸入較少。

    句子 scanf("%d",&n);

    2.如果不是你複製的錯誤,超時的原因是你用來計算最大值和最小值的演算法不好,你在函式體內部完成的是乙個排序過程,其實最大值和最小值同時輸出,無需排序即可在3n 2-2時間內實現, 並使用更簡單的演算法。

    3.如果你追求效率,使用向量可能會比較慢,而這種問題可以完全消除這種複雜的資料結構。

    填寫3n 2-2時間內解決最大值和最小值問題的方法。

    首先,比較兩對,將n個數字分為兩組,大組和小組。

    另一組。 (n/2)

    通過成對比較將大組分為兩組,每組分為兩組。

    n/2/2)

    遞迴求大集合的最大值 (tmax(n)=tmax(n2)+n2)。

    tmax(n)=n-1

    對小組進行類似的計算。

    所以 t(n)=n 2+tmax(n 2)+tmin(n 2)=3n 2-2

  2. 匿名使用者2024-02-07

    您的演算法的時間複雜度是多少? 但是,**和演算法看起來都不太好。

    如果時間複雜度要求不是太高,直接使用排序排序,輸出的第乙個和最後乙個元素分別是最小值和最大值,**也比較簡單,時間複雜度為o(nlogn),如下:

    #include

    #include

    #include

    using namespace std;

    int main()

    int n,i;

    cin>>n;

    vectorvi(n);

    for(i=0;i

    #include

    using namespace std;

    int main()

    int n,i;

    cin>>n;

    vectorvi(n);

    for(i=0;imax) max=vi[i];

    if(vi[i]printf("%d%d",min,max);

    return 0;

  3. 匿名使用者2024-02-06

    (a-c)(b-c)

    a·b-a·c-b·c+c^2

    a·c-b·c+1

    c·(a+b)+1

    由於 a 和 b 是垂直的,並且 a 和 b 都是單位向量,因此 a+b = 根數 2·a 原 -c·(根號 2a) 1

    根數 2a|·|c|·cosα+1

    根數 2cos +1

    根數 2+1 其中是向量根數 2a 和向量 -c 之間的角度。

    也就是說,當所有三個向量都移動到原點時,a 和 b 呈 90° 角,當 c 與向量 a+b 的方向相同時,有乙個最小值 - 根數為 2+1

  4. 匿名使用者2024-02-05

    A 和 C 是共線的,友元設定為 k(2,1) (2k,k)。

    b+a=(2k-3,k+1),|b+a|2 (2k-3) 2+(k+1) 2 5k 2 10k 10 Buddy Spike 5(k-1) 2 5 5,所以報告 |b+a|最小值為 5

  5. 匿名使用者2024-02-04

    向量 abc 是乙個單位向量,則 c 2 = 1,a + b) 2 = a 2 + b 2+,所以 |a+b|= 2,所以 |a-c|.|b-c|

    ab-(a+b).c+c^2

    (a+b).c+1

    |a+b|.|c|+1

  6. 匿名使用者2024-02-03

    a-c)(b-c)=ab-c(a+b)+c^2=0-c(a+b)+1ab=0∴a⊥b∴|a+b|= 根喇叭肢 2

    所以 c(a+b)=|c||a+b|cos = 1 * 根預巨集 2 * cos 根數 2 原始 1 - 根數 2

    所以最懺悔的值是1-2

  7. 匿名使用者2024-02-02

    a-c) (歷禪 b-c) = ab-c (a+b) + c 2 = 1-c(a+b) 銀殷 a*b=0 |a+b|= 根數 2

    a-c)(b-c)=1-1*根:2*1

    1 - 根凝角肢塵 2

  8. 匿名使用者2024-02-01

    A-C)(B-C)=ab-ac-bc+c*c,因為模因是 c*c=1 ab=0 所以。

    a-c)(b-c)=-c(a+b)

    並且因為 a*b=0,所以 Sodanxiang 在 b 中挖掘,a 垂直於 b,a+b=根數 2,所以 c 垂直於向量 (a+b),所以 -c(a+b) 的最小值為 0,原始公式的最小值為 1

  9. 匿名使用者2024-01-31

    解:從 a*b=丨a丨丨b丨cos =2,我們得到 cos =1 2,所以 = 2

    您可能希望設定 a=(2,0), b=(1, 3), c=(x,y), (a-c)*(b-2c)=0,並代入 2x 2-5x+2+2y 2- 3y=0

    可以簡化為(x-5 4) 2+(y- 3 2) 2=3 4,即c的終點落在圓上,則丨b-c丨的最小值是從點(1,3)到圓的距離的最小值,即從點到圓心的距離減去半徑, 和 ( 7- 3) 2

  10. 匿名使用者2024-01-30

    m=(a-b)*(b-c)=a*b-b*b-a*c+b*c=-|b|²-a*c+b*c

    1-c*(a-b)

    原因|a|=|b|=|c|=1,則 |a-b|= 2,則:c*(a b)=|a-b|×|c|cosw= 2cosw,最大值為 2,則:

    m 的最小值為 1 2

  11. 匿名使用者2024-01-29

    ∵|a|=|b|=|c|=1 ab=0 bb=1 (a-b)(b-c)=ab-ac-bb+bc=(b-a)c-1= 2cos -1(設定為 (b-a) 和 c 之間的角度)。

    最小 cos 為 -1(此時角度為 180),a-b)(b-c) 的最小值為 -2-1。

相關回答
4個回答2024-04-20

總結。 解:對於CTAAB的導數,可以使用微積分的導數進行求解。 >>>More

9個回答2024-04-20

我們來談談 foreach 和 for 的區別,foreach 是針對物件的遍歷,不需要定義迴圈個數,但有乙個缺點,foreach 遍歷需要唯讀資料,不能在 foreach 中新增、刪除和修改物件,而 for 迴圈可以。 >>>More

4個回答2024-04-20

#include

using namespace std; >>>More

8個回答2024-04-20

如果將 r 定義為 int,請輸入 10000,這將在相乘時自動強制型別轉換。 >>>More

5個回答2024-04-20

int max(float fx,float fy)float fz;

fz=fx>fy?fx:fy; >>>More