Pythonでいくつかの要素を削除した後、配列の平均を見つけるプログラム
numsという配列があるとすると、要素の最小の5%と最大の5%を削除した後、残りの値の平均を見つける必要があります。
したがって、入力がnums =[2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8]のようである場合、 、その場合、出力は4.0になります。これは、最小値と最大値を削除した後、すべてが同じであり、中央値が
であるためです。これを解決するには、次の手順に従います-
-
リスト番号を並べ替える
-
n:=numsのサイズ
-
per:=(n * 5/100)の商
-
l2:=インデックスごとのnumsのサブ配列(numsのサイズ-per-1)
-
x:=l2のすべての要素の平均
-
xを返す
例(Python)
理解を深めるために、次の実装を見てみましょう-
def solve(nums): nums.sort() n = len(nums) per = int(n*5/100) l2 = nums[per:len(nums)-per] x = sum(l2)/len(l2) return x nums = [2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8] print(solve(nums))
入力
[2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8]
出力
4.0
-
Pythonでリストの隣接していない要素の最大の合計を見つけるプログラム
numsと呼ばれる数値のリストがあるとすると、隣接していない数値の最大の合計を返す関数を定義します。ここでは、数値は0または負の数にすることができます。 したがって、入力が[3、5、7、3、6]の場合、出力は16になります。これは、get16に3、7、および6を取ることができるためです。 これを解決するために、次の手順に従います- numsのサイズが<=2の場合、 最大数を返す noTake:=0 取る:=nums [0] 1からnumsのサイズの範囲のiの場合、実行します take:=noTake + nums [i] noTake:=
-
Pythonで一意の配列の連続する間隔を見つけるプログラム
numsと呼ばれる一意の番号のリストがあるとします。並べ替えられた数値の2D行列を見つける必要があります。各リストは、数値が連続している数値を要約した包括的区間を表します。 したがって、入力がnums =[10、11、12、15、16、17、28、30]のような場合、出力は[[10、12]、[15、17]、[28、28]になります。 、[30、30]]、リスト[10から12]のように、[15から17]は隣接しており、28と30があり、[28から28]と[30から30]として表されます。 これを解決するために、次の手順に従います- リスト番号を並べ替える numsの最後に無限大を