<分区>
这是在一所社区大学。我失败了,但想知道答案。
问题是这样的:您有一个表示图像的二维结构数组。每个结构都有一个红色、绿色、蓝色和 alpha 值。可以有更多信息,但不是解决问题所必需的。
假设图像是 4000x4000 或 1600 万个元素。每一个元素都需要在每一轮更新/检查。
对于您需要的每个元素:
- 如果 < 50 或设置为 205 > 205,则将红色字节设置为 50
- 使用 rand() 将绿色字节设置为 0 到 255 之间的随机值
- 以“有趣”的方式修饰蓝色。
“你不能强行做到这一点,以更聪明的方式思考;你需要更好的算法”
我基本上做了一个循环。我是最快的,但他说这是“关于找到更好的算法,而不是使用可爱的编译器和指针技巧”。
还需要使用纯 C 语言。没有 OpenMP/Threads 或 OpenGL 着色、OpenCL 等...只有带有标准库的 ANSI C(甚至禁止使用 GNU/POSIX 库)。
我询问了按位运算,他说“这些在 C [??] 中非常昂贵,而且它是关于编写一个快速而可靠的算法,而不是你不断想出的这些可爱的技巧”。
有什么提示吗?