小编Gio*_*is3的帖子

对数组进行排序,使得元素a [i] -a [i + 1] <= a [i + 1] -a [i + 2]的差异

自从我上周开始尝试按条件对N个元素的数组进行排序时,我的思绪就被吹了:2个元素之间的差异总是小于或等于接下来的2个元素.例如:

?[4] = { 10, 2, 7, 4}
Run Code Online (Sandbox Code Playgroud)

可以通过这种方式重新排列该数组:

  • {2, 7, 10, 4} 因为 (2 - ­7 = ­-5) < (7 - ­10 = -­3) < (10 - ­4 = 6)

  • {4, 10, 7, 2} 因为 (4 - ­10 = -­6) < (10 - ­7 = ­3) < (7 - ­2 = 5)

我考虑的一个解决方案就是改组阵列并每次检查它是否符合条件,这是一种有效的方法,适用于少量元素,但对于大量元素而言耗时甚至不可能.

另一个尝试用循环移动数组周围的元素,希望再次满足要求,但是这种方法再次非常耗时,有时也是不可能的.

试图找到一个算法似乎没有任何结果,但必须有一些东西.

非常感谢你提前.

arrays sorting algorithm

7
推荐指数
1
解决办法
344
查看次数

用于计算积分的程序中的错误

我试图使用积分计算图形的面积.

用户应该给我3个号码:

  • x1,x2 - 积分的边界
  • N是程序将功能分成多少部分

但是,我一直得到错误的结果.

我遇到的第一个困难是范围只接受整数.

此外,z=(x2-x1)/N如果我尝试使它成为一个浮点数,我不能让它继续前进,我不会使它浮动它接近零,所以Python向我显示步骤为零的错误.

另外我该如何总结(z*(f(i)+f(i+z)/2)

这是我的代码:

# -*- coding: UTF-8 -*-
import math

def f(x) :
    y = (-1/6.0)*(x-1)*(x-2)*(x+2)*(x-4)
    return y 
x1=int(raw_input ('????? ?? ?1 ???? ??????? ? ??????? ??? ????????????? \n ')) #greek letters
x2=int(raw_input ('????? ?2 ???? ?????? ?? ????????????? ? ??????? \n '))
N=int(raw_input('????? ??? ?????? n ??? ?? ????? ?? ?????? \n ??? ????????? ??? ?? ??????????????? ??? ???????????  \n '))
z=(x2-x1)/N
for i in range(x1,x2,z):
    z=float(z) …
Run Code Online (Sandbox Code Playgroud)

python math

5
推荐指数
2
解决办法
190
查看次数

标签 统计

algorithm ×1

arrays ×1

math ×1

python ×1

sorting ×1