- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
据我了解,range-v3 库的 View 操作(目前需要 C++17,但要成为 C++20 中 STL 的正式部分)提供了可链接的类 STL 算法,这些算法是延迟计算的。作为实验,我创建了以下代码来评估前 4 个完全数:
#include <iostream>
#include <range/v3/all.hpp>
using namespace std;
int main(int argc, char *argv[]) {
auto perfects = ranges::view::ints(1)
| ranges::view::filter([] (int x) {
int psum = 0;
for (int y = 1; y < x; ++y) {
if (x % y == 0) psum += y;
}
return x == psum;})
| ranges::view::take(3);
std::cout << "PERFECT NUMBERS:" << std::endl;
for (int z : perfects) {
std::cout << z << std::endl;
}
std::cout << "DONE." << std::endl;
}
代码以可能无限范围的数字开始(ranges::view::ints(1)
),但是因为 View 算法以 ranges::view::take 结束(3)
它应该在找到前三个数字通过过滤算法后停止(一种用于过滤完美数字的蛮力算法,故意不那么有效)。由于前三个完全数 --- 6、28 和 496 --- 相当小,我希望这段代码能够快速找到它们,并打印“DONE”。并终止。而这正是发生的事情:
coliru -- taking 3 perfect numbers works just fine
但是,假设我想打印前 4 个完全数,它们仍然非常小 --- 6、28、496 和 8128。在打印 8128 之后,程序不会停止,最终必须终止;据推测,它正在徒劳地尝试计算第五个完美数 33550336,这超出了这种蛮力算法有效查找的能力。
coliru -- taking 4 perfect numbers tries to take 5+
这对我来说似乎不一致。如果两个测试都失败了(结论是我误解了 range-v3 的 View 算法的懒惰评估),我会理解的,但是 take(3) 成功并停止而 take(4) 对我来说似乎不是错误,除非我误解了事情。
我已经在 wandbox 上用几个编译器试过了,它似乎是持久的(试过 clang 6.0.1 和 7.0.0,g++ 8.1.0 和 8.2.0)。至少在我最初发现问题的本地计算机上,正在使用 range-v3 版本 0.3.6,但我不确定 coliru 和 wandbox。
最佳答案
包含 n
元素的 take View 具有 n + 1
有效迭代器值:n
对应于范围内的元素,并且n + 1
st 尾后迭代器。旨在迭代 take View 必然形成那些 n + 1
迭代器中的每一个 - 实际上,提取由 take View 的 end
迭代器适配的底层迭代器值是有用的执行额外的计算。
take_view
不知道它正在调整的范围是一个过滤器,或者您的过滤器谓词非常昂贵 - 它只是假设您的谓词是 O(1),因为它需要提供 O(1) 迭代器操作。 ( Although we did forget to make that complexity requirement explicit in C++20 。)这个案例很好地说明了为什么我们有复杂性要求:如果被适配范围的迭代器不满足标准的 O(1) 复杂性要求, View 就不能满足其复杂性保证并且关于性能的推理变得不可能。
关于C++ 范围-v3 库 : 'take' -ing first 3 perfect numbers works and halts; 'take' -ing first 4 doesn't stop after 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53341822/
作为完美服务器端 swift 的新手,我找不到任何有助于基于角色的访问授权的包。在 Spring 有例如, .antMatchers("/homePage").access("hasRole('ROL
我在 [0; 范围内有许多整数; 2^63-1]。但是,只有 10^8 个整数。没有重复。完整列表在编译时已知,但它只是唯一的随机数。这些数字永远不会改变。 要显式存储一个整数,需要 8 个字节,并且
这个问题在这里已经有了答案: Justify text to fill a div (4 个答案) 关闭 8 年前。
我在不知道圆内内容(图像)的确切高度的情况下弄清楚如何制作一个完美的圆时遇到了问题。 我有多张图片(巨型标题),周围有圆圈,但里面的图片高度不同。我怎样才能让它看起来像一个完美的圆圈?为每一个。 下面
我正在制作一个游戏,我需要让我的物体发生碰撞,但是我有很多快速的小物体和正常的碰撞算法(形状的交集等)不起作用,因为位置+速度迭代推进了墙壁和实际上从来没有交叉路口。 所以我开始构建我自己的(也许它已
我在 Ubuntu Linux 服务器上托管了一个 Perfect-Swift 网络应用程序。我正在寻找一种从 Web 根目录读取图像文件并将其转换为 base64 兼容字符串以发送响应的方法。 最佳
题目地址:https://leetcode.com/problems/perfect-number/#/descriptionopen in new window 题目描述 Wedefine th
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
让我澄清一下,我并不是在说一种能够压缩任何给定源 Material 的算法,这是完全不可能的,我意识到这是不可能的。我想要得到的是一种算法,该算法能够将任何位的源字符串编码为由Shannon熵确定的绝
我正在开发需要两种类型服务器的服务器应用程序。 1 个主服务器将处理负载平衡、身份验证等,以及多个工作服务器实例将处理实际应用程序逻辑。我需要能够在这两种类型的服务器之间进行通信。做到这一点的最佳方法
这不是一个家庭作业问题,实际上我这样做是为了好玩。 问题是这样的: 我有一间具有指定“宽度”(椅子)的教室,我必须将所有学生安置好,这样教室里就不会发生对话。 如果一名学生与另一名学生相邻,就会发生对
我是 perfect 的新手,问题是,由于某种原因它不加载 css 或图像。我把它们都放在同一个目录中: 网络根目录: index.html 样式.css 图片.jpg 代码就是: 但是,无论我尝
当数没有完全平方时应该返回false,否则返回根。但在此代码中,它始终返回根。例如。输入5,根2。 main() { int i; int number=0; int result=0; for(i=
在下面的屏幕截图中,我试图让蓝色框中的文本居中对齐。它太低了,需要提升一两个像素。我一直在玩填充,但它似乎没有任何效果。 布局 XML 在这里: 有什么建议吗? 在@Snicola
我正在设计一个网站来跟踪举重和卡路里。我以前从未设计过自己的数据库,我认为在开始编码之前我应该尽可能地了解它。每次我认为我完成了,我都会因为它不完美而感到不安。我已经在 MySQL Workben
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
如何使 dict 的子类尽可能“完美”?最终目标是拥有一个简单的 dict,其中的键是小写的。 似乎应该有一些很小的原语集我可以重写以使其工作,但根据我所有的研究和尝试,情况似乎并非如此: 如果我 o
我正在尝试使用以下方法创建“完美滚动条”: https://noraesae.github.io/perfect-scrollbar/ 使用最简单的代码: $(document).ready(
我想将样式应用于滚动条,滚动条样式在使用 css 的 Chrome 中完美运行。但在 Firefox 和 Iexplore 中不起作用。 因此我选择了完美滚动条,但是如果我们使用箭头键导航选项,滚动条
我正在使用 ngx-perfect-scrollbar 进行滚动,垂直滚动运行良好,但水平滚动不起作用 All
我是一名优秀的程序员,十分优秀!