- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定n个介于[0,10000]之间的整数作为D1,D2...,Dn,其中可能有重复,并且 n 可以很大:
我想在 [0,10000] 之间找到 k 个不同的代表性整数(例如 k=5)作为 R1,R2,...,R k,所以所有代表整数的误差之和最小。
代表性整数的误差定义如下:
假设我们有 k 个代表整数,按升序排列为 {R1,R2...,Rk},错误的 Ri是 :
我想最小化 k 个代表整数的误差总和:
如何才能有效地做到这一点?
EDIT1: k 个代表整数中最小的必须是最小的数{D1,D2...,Dn}
EDIT2: k个代表整数中最大的一定是{D1,D2...,D中最大的数n}加1。比如当{D1,D2...,Dn } 是 9787 那么 Rk 是 9788.
EDIT3:一个具体的例子在这里:
D={1,3,3,7,8,14,14,14,30} 并且如果 k=5 并且 R 被选为 {1,6,10,17,31} 那么误差总和是:
误差总和=(1-1)+(3-1)*2+(7-6)+(8-6)+(14-10)*3+(30-17)=32
这是因为 1<=1,3,3<6 , 6<=7,8<10, 10<=14,14,14<17, 17<=30<31
最佳答案
尽管在社区的帮助下,您还是设法说明了您的数学上可以理解的形式的问题,你仍然这样做没有提供足够的信息使我(或其他任何人)能够提供你是一个明确的答案(我会把它作为评论发布,但是出于某种原因,我没有看到“添加评论”选项可用于我)。为了很好地回答这个问题,我们需要知道n 和 k 相对于彼此的相对大小以及 10000(或Di 的预期最大值(如果它不是 10000),以及是否达到确切的最小值至关重要(即使这需要大量的时间来计算)或者如果一个近似值也可以(如果是这样,你有多接近需要得到)。另外,为了知道运行的是什么算法最少的时间,我们需要了解什么样的硬件将运行算法(即,我们有 m 个 CPU并行运行的内核以及 m 相对于 k 的大小是多少)。
另一个重要的信息是这个问题是否会只解决一次,或者必须解决多次但存在整数 Di 的分布之间存在某种联系从一个问题到下一个问题(例如,整数Di 都是来自特定的、不变的随机样本概率分布,或者也许每个连续的问题都有它的输入是一个不断增加的集合,它是前一个集合问题加上一个额外的 s 个整数)。
您的问题没有合理的算法应该及时运行在某种程度上取决于 n 的线性关系,因为构建直方图n 个整数 Di 需要 O(n) 时间,而答案优化问题本身只依赖于直方图整数而不是它们的顺序。没有算法可以及时运行小于 O(n),因为这是问题输入的大小。
对所有可能性的强力搜索需要,(假设至少有一个 Di 是 0 而另一个是 10000),因为小 k,比如 k < 10,大约 O(10000k-2) 时间,所以如果log10(n) >> 4(k-2),这是最优算法(因为在在这种情况下,暴力搜索的时间与读取输入的时间)。同样有趣的是,如果 k 是非常接近 10000,那么暴力搜索只需要O(1000010002-k)(因为我们可以搜索不用作代表性整数的整数)。
如果您用更多信息更新问题的定义,我将依次尝试编辑我的答案。
关于arrays - 最小化代表性整数的误差总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167774/
我有一个关于 DFA 最小化的问题。所以我使用了众所周知的技术将正则表达式转换为 NFA,然后使用 goto/closure 算法从中构造 DFA。现在的问题是如何将其最小化?我在这里看过有关它的课文
这是我的代码,当鼠标光标悬停在 TPanel 上时,它会“动画化”它。我还有一个代码块来取消它的动画。 procedure Tmain.pStarting1MouseEnter(Sender: TOb
我有图像 slider ,其中图像在超时时相互替换。我使用 jQuery 函数 setInterval() 但有一个小问题,在最小化浏览器窗口后,该函数继续“工作”,并且我恢复浏览器窗口图像的位置以令
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How can I stop a double click of the window title bar
当我在我的 Windows 窗体应用程序中单击最小化按钮时,我不希望它执行经典的 Windows 最小化动画(窗口下降到任务栏)。 据我所知,没有最小化事件,我只能使用调整大小,但我不知道如何检测我是
首先 - 对不起我的英语。 我刚刚创建了 Android 应用程序。它包含几个 Activity ,并在此应用程序的背景下播放音乐。当用户以某种方式(通过单击“后退”按钮、主页按钮或其他方式)离开应用
我需要帮助编写一个程序,该程序以 (X,Y) 的形式给出指定数量的坐标点。将给出的点数是程序中的第一行;它可以通过扫描仪读取。 我需要计算覆盖线 x = a 和 y = b 的所有点的最小面积。因此,
我需要一个 Activity 返回到上一个 Activity ,但如果再次单击该按钮,它将恢复上次的 Activity 。这是所需的过程:我点击一个按钮, Activity 开始。如果我点击“后退”按
随着这个动画变得越来越复杂,我不断添加参数,以便它们在每次回调时可用。目前共有 6 个。 例如,现在我想在显示消息时禁用输入框,因此我必须添加另一个元素 - in_element; 电话: M
这是一个基于对话框的 MFC 应用程序。我并没有故意添加任何关于最小化、最大化和恢复按钮的代码。它可以首先显示那些按钮。但它在长时间运行后就会消失。或者计算机的 sleep 可能导致此问题? 我不知道
如何使用 Windows API 禁用窗口的最大化和/或最小化功能?最大化/最小化框需要变灰并禁用,双击标题栏、拖动到屏幕顶部等也需要不起作用。 最佳答案 您可以调用 SetWindowLong/Se
是否有任何已知的算法帽子可以解决以下问题:我们有一个 session ,有多个同时会谈。用户应标记感兴趣的会谈,然后我们要创建一个会谈时间表,以便我的大多数人都可以参加他们的会谈并最大限度地减少日程冲
目前我负责为一个小项目开发一个(C++)窗口类;目标是将依赖性保持在最低限度。Win32/WinAPI 的实现按预期工作,但是,当涉及到 Linux/XCB 时,我正在努力。 我知道,我可以检查“_N
windows C++编程,如何让事件窗口最大化或最小化? 对于鼠标按下事件,我们使用类似 mi.dwFlags = MOUSEEVENTF_LEFTDOWN 的东西,并使用 SendInput()
我编写了以下获取 2 个参数的构造函数,如果值(x 或 y)为负,它将被初始化为零。 public Point1 ( int x , int y ) { //if one or
我有以下代码,如果我将导航窗口最大化,它运行良好,但是当我最小化它时它停止工作。 更多细节: 当窗口最小化时,“scrollDown & scrollTop”函数停止执行。 'use strict'
我有一个包含一些宏和用户表单的 Excel 文件。 我不希望用户在没有密码的情况下访问文件本身。他们应该只能看到用户表单并通过用户表单输入数据。 这是我目前拥有的代码。 Private Sub Wor
目前,我正在尝试训练一个同时具有复值张量作为输入和输出的网络。作为损失函数,我采用输出与真实值之间逐点差异的范数。 当我尝试最小化损失函数时,tensorflow 的“最小化”函数提示意外的复数。我觉
这个函数是我想要优化的主力。任何关于如何限制其内存使用的想法都会很棒。 function F(len, rNo, n, ratio = 0.5) s = zeros(len); m = co
在 Qt 下的 Windows Mobile 和 Symbian 平台上,如何通过单击应用程序中的某个按钮来最小化我的应用程序? 最佳答案 大概QWidget::setWindowState将适合您,
我是一名优秀的程序员,十分优秀!