问题标签 [packing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 包装问题
我有以下问题:
- 我有给定数量的具有不同颜色的相同形状的物品(我知道每种颜色有多少)
- 我将这些物品打包到可以容纳每个给定数量 (n) 物品的盒子中,这样我就可以使用最少数量的盒子:round_up(total_nr_of_items/n)
- 有些颜色我不允许放在一个盒子里,除非我不能拥有理想数量的盒子。
- 我被允许放入盒子中的每种颜色的物品数量最少(每种颜色不同)。那就是我可以决定放 0 件。将一种颜色装入一个盒子或至少 k 个。或以上。如果包装不能用最少数量的盒子完成,这个约束也可以被打破(尽可能少)。
- 我想找到一个解决方案,在盒子之间拆分尽可能少的颜色。
我认为这是一种包装问题,但我不知道是哪一种。
请建议可以将上述内容转换为哪个打包问题和/或我可以用来解决此问题的算法。
algorithm - 将 n 个可变高度图像拟合到 3 个(相似长度)列布局中
我正在寻找类似于piccsy.com的 3 列布局。给定许多宽度相同但高度不同的图像,有什么算法可以对它们进行排序以使列长的差异最小?理想情况下在 Python 或 JavaScript 中......
非常感谢您提前提供的帮助!
马丁
python - 在 Tk with Python 中,我如何指定一个框架或画布来调整我的窗口大小?
我对 Tk 和包装概念完全陌生,所以请耐心等待。这是我的代码:
我尝试了几种不同的选项和测试,看起来框架和画布都在 x 方向上锚定并扩展,但在 y 方向上调整大小会留下一堆空白空间。
如何让框架锚定到窗口的所有侧面,然后将画布锚定到框架的所有侧面?我什至应该使用框架吗?
php - 自动从 Amazon S3 打包 Javascript/CSS?
我正在将我的 javascript 和 css 文件移动到 Amazon S3 - 任何人都可以提出一种有效的方法来自动打包/最小化文件而不违背将它们托管在 S3 上的目的吗?
Atm,我的 javascript 文件以这种方式被调用:
php 文件在哪里找到 myjavascript.js,将其打包,将打包后的 js (myjavascript_min.js) 保存到单独的文件夹中,然后返回。这似乎不是很有效,即使它仅在 myjavascript_min.js 不存在或 myjavascript.js 在最后生成 myjavascript_min.js 后被修改时才经过打包过程。
任何帮助表示赞赏!
com - 在 COM 接口的 C# 实现中指定结构打包
是否可以在 COM 接口的 C# 实现中指定结构打包大小?
(我知道在托管端定义结构时该怎么做,但我的问题是何时在非托管端定义并在托管端实现。)
我有一个 COM 类型库,它定义了一个结构类型和一个返回这些结构数组的接口方法。我有一个 C# 服务器和一个非托管 C++ 服务器,它们都实现了这个接口,以及一个使用它的 C++ 客户端。C++ 服务器和 C++ 客户端在 32 位构建中都将结构打包为 4 个字节,在 64 位构建中打包为 8 个字节。
但无论平台(x86、x64、AnyCPU)如何,C# 服务器总是打包到 4 个字节。这是正常的吗?它可以被覆盖吗?
该结构如下所示:
Visual Studio C++ 和 MIDL 编译器使用 /Zp8 的默认打包。在 32 位构建中,结构的两个成员都是 4 字节宽,因此它们没有被填充。在 64 位构建中,字符串指针为 8 个字节,枚举为 4,因此枚举被填充。自然,当 C# 客户端发送未填充的数据时,这会导致问题。
我可以通过指定 /Zp4 删除填充来修复(解决?)问题,并且一切似乎都工作正常。但我想知道这是否是最好的解决方案。
我想默认打包是 /Zp8 仅出于性能原因。据我了解,默认情况下,在 x64 上,硬件会捕获并处理对齐异常,因此至少我们不会崩溃。在这种特殊情况下,我不关心性能损失,因为接口函数只在系统启动时调用。即使我很在意,我仍然可能会接受它作为 COM/.NET 互操作的成本。但我有点不安,因为感觉不对(我想来自 C++ 背景。)
另一方面,如果根本不可能更改托管方的包装,那么我会接受它。
谁能给我一些建议?
c++ - 由于在 C (gcc/g++) 中打包导致的计算开销
我想计算/总结由于打包导致的目标文件中的开销(理想情况下,让 gcc 为我最小化它)。
例如,考虑以下结构(32 位 x86,gcc):
虽然实际数据只占用 6 个字节,但该结构在内存中占用 12 个字节,因为这两个字符后跟 3 个填充字节。通过重新排序结构如下:
该结构将只有 sizeof(struct b) == 8 (仍然是 4 字节的开销)。
(1) 理想情况下,我希望 gcc 重新排列struct a
并struct b
节省空间,但我的版本 (4.2) 似乎没有针对任何优化级别执行此操作。
(2)或者,给定struct a
,我想(自动)获得数字6
(总开销)或4
(最小的开销,如果成员被“理想地”订购)。这样做的目的是确定手动重新排序结构是否值得花时间(可能不值得)。
gcc 有没有办法做(1),有没有可以执行(2)的工具?对于(1),我能想到的最接近的事情是#pragma pack(1)
,但是(我猜)它会通过使大多数/所有内存访问不对齐而产生严重的性能影响。对于(2),我认为解析调试符号的 Perl 脚本可能能够做到这一点,但我对 DWARF 不够熟悉,无法确定。
c++ - 打包位图
我正在尝试将字体字形图像打包到单个纹理中。位图是每像素单色 1 个字节,我希望将它们全部打包到 1 个纹理上。我能够计算出所需的最小纹理大小,但我无法管理一种算法将它们打包在一起。
我目前将位图存储为 char 指针,并且能够获取每个位图的尺寸。
c++ - 为什么 C++ 不使结构更紧密?
例如,我有一个class
,
并根据我的测试程序,一个接一个a
地d
构建,比如
-
表示未使用。
为什么 C++ 不让它更紧密,比如
algorithm - 在任意边界内打包任意多边形
我想知道是否有人可以指出适合我特定多边形打包问题的最佳算法/启发式算法。我得到一个多边形作为边界(凸面或凹面也可能包含孔)和一个“填充”多边形(也可能是凸面或凹面,不包含孔),我需要用指定的数字填充边界多边形填充多边形。(我在 2D 中工作)。
我发现的许多多边形打包启发式假设边界和/或填充多边形将是矩形,并且填充多边形将具有不同的大小。在我的情况下,填充多边形可能是非矩形的,但都将完全相同。
也许这是一种特殊类型的包装问题?如果有人对这种类型的多边形打包有一个定义,我会很乐意用谷歌搜索,但到目前为止,我还没有找到任何类似的东西非常有用。
谢谢。