數組元素的絕對差值總和最小的是哪一個?
在這裡,我們將看到一個有趣的問題。我們有一個包含N個元素的陣列'a'。我們需要找出一個元素x,使得|a[0] - x| |a[1] - x| ... |a[n-1] - x|的值最小化。然後我們需要找到最小化的和。
假設陣列為:{1, 3, 9, 6, 3},現在x為3。所以和為|1 - 3| |3 - 3| |9 - 3| |6 - 3| |3 - 3| = 11。
為了解決這個問題,我們需要選擇數組的中位數作為x。如果數組的大小是偶數,則會有兩個中位數值。它們都是x的最佳選擇。
演算法
minSum(arr, n)
begin sort array arr sum := 0 med := median of arr for each element e in arr, do sum := sum + |e - med| done return sum end
範例
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int minSum(int arr[], int n){ sort(arr, arr + n); int sum = 0; int med = arr[n/2]; for(int i = 0; i<n; i++){ sum += abs(arr[i] - med); } return sum; } int main() { int arr[5] = {1, 3, 9, 6, 3}; int n = 5; cout << "Sum : " << minSum(arr, n); }
輸出
Sum : 11
以上是數組元素的絕對差值總和最小的是哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Java中使用`Arrays.stream()`函數將陣列轉換為流,然後使用`min()`和`max()`函數來計算最小值和最大值。

在PHP程式設計中,implode函數是一種非常常用的函數,可以將一個陣列中的元素連接成一個字串。使用該函數可以節省開發人員編寫大量連接字串的程式碼,更有效率。 implode的基本語法為:stringimplode(string$glue,array$pieces)此函數接收兩個參數:$glue表示要連接陣列元素的分隔符,$pieces表示

在這裡,我們將看到一個有趣的問題。我們有一個包含N個元素的陣列'a'。我們要找出一個元素x,使得|a[0]-x|+|a[1]-x|+...+|a[n-1]-x|的值最小化。然後我們需要找到最小化的和。假設數組為:{1,3,9,6,3},現在x為3。所以和為|1-3|+|3-3|+|9-3|+|6-3|+|3-3|=11。為了解決這個問題,我們需要選擇數組的中位數作為x。如果數組的大小是偶數,則會有兩個中位數值。它們都是x的最佳選擇。算法minSum(arr,n)begin &

使用PHP的implode()函數將陣列元素連接成有分隔符號的字串,程式碼範例如下:<?php//定義一個陣列$array=array('apple','banana','orange'); //使用implode()函數將陣列元素連接成帶有分隔符號的字串$delimiter=',';//定義分隔符號$result=im

線性搜尋是在陣列中搜尋元素的最簡單方法。它是一種順序搜尋演算法,從一端開始,並檢查陣列的每個元素,直到找到所需的元素。遞歸是指一個函數呼叫自身,當使用遞歸函數時,我們需要使用任何循環來產生迭代。下面的語法示範了簡單遞歸函數的工作原理。 defrerecursiveFun():Statements...rerecursiveFun()...rerecursiveFun遞歸地線性搜尋元素從陣列中遞歸地線性搜尋一個元素,只能透過使用函數來實現。在Python中,要定義一個函數,我們需要使用def關鍵字。在

Array是一個容器,其中包含相同資料類型的元素,長度需要事先定義。數組中的元素可以以任何順序和任意次數出現。因此,在這個程式中,我們將找出數組中出現多次的元素。問題描述-我們已經給出一個數組arr[],我們需要找出數組中重複出現的元素,並列印它們。讓我們舉一個例子來更好地理解。範例:Input:arr[]={5,11,11,2,1,4,2}Output:112解釋我們有一個包含一些元素的陣列arr,首先我們會在重複函數中比較下一個元素。重複函數用於在陣列中找到重複的元素。在重複函數中,我們使用

問題陳述給定一個包含n個正整數的陣列。我們必須找到質數具有最小值和最大值的數字。如果給定的陣列是-arr[]={10,4,1,12,13,7,6,2,27,33}thenminimumprimenumberis2andmaximumprimenumberis13演算法1.Findmaximumnumberfromgivennumber.LetusmlitmaxNumber2.Generateprinandum

我們將討論三角形數以及如何找到僅大於給定數字“num”的最小三角形數。我們先討論什麼是三角數,然後找出比「num」大的最小三角數我們將看到針對相同問題的兩種不同方法。在第一種方法中,我們將執行一個簡單的循環來產生輸出,而在第二種方法中,我們將首先產生一個用於計算所需數字的通用公式,然後直接應用該公式來獲得最小的三角形數。問題陳述我們必須找出僅大於“num”的最小三角形數。我們有多個裝有球的盒子。對於所有盒子來說,盒子包含的球的數量都是一個不同的三角形數字。這些盒子從1到n編號。我們必須找出從盒子
