将1维长度嵌套到预定义的库存长度中的有效算法是什么?
例如,如果您需要以下数量和长度的钢筋,
这些可以从10米棒切割.你如何计算切割10米棒的模式,以便使用最小数量的棒?
另外,如何在算法中加入多个库存长度?
我有一些时间来处理这个问题,所以我要写下我是如何解决它的.我希望这对某人有用.我不确定是否可以像这样回答我自己的问题.如果更合适,主持人可以将此更改为答案.
首先感谢所有回答的人.这指出了适当的算法; 切割库存问题.
这篇文章也很有用; "计算最少量的减产废物的切割清单".
好的,关于解决方案.
我将在我的解决方案中使用以下术语;
解决问题有三个主要阶段,
步骤1
N切口有2 ^ N-1个独特的切割组合.这些组合可以表示为二元真值表.
A,B,C是独特的切口;
A B C | Combination
-------------------
0 0 0 | None
0 0 1 | C
0 1 0 | B
0 1 1 | BC
1 0 0 | A
1 0 1 | AC
1 1 0 | AB
1 1 1 | ABC …Run Code Online (Sandbox Code Playgroud) 如果我的winforms应用程序的用户调整了主窗体的大小,我希望2个面板与子控件一起伸展.
我怎样才能做到这一点?
我正在整理一些旧的代码,这些代码使用"幻数"来设置硬件寄存器,我想使用常量而不是这些数字来使代码更具表现力(实际上它们将映射到名称/用于记录寄存器的值).
但是,我担心随着变化的数量,我可能会打破神奇的数字.这是一个简化的例子(寄存器集更复杂):
const short mode0 = 0;
const short mode1 = 1;
const short mode2 = 2;
const short state0 = 0;
const short state1 = 4;
const short state2 = 8;
Run Code Online (Sandbox Code Playgroud)
而不是:
set_register(5);
Run Code Online (Sandbox Code Playgroud)
我们有:
set_register(state1|mode1);
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是构建时间版本:
ASSERT(5==(state1|mode1));
Run Code Online (Sandbox Code Playgroud)
更新
@Christian,感谢快速响应,我对C/non-boost环境的答案感兴趣,因为这是驱动程序/内核代码.
似乎当我使用工具(例如winmerge)来更新我的代码库时...我的Visual Studio Team System(VSTS)与Team Foundation Server(TFS)的集成似乎并没有找到它.
我如何知道要检出哪些文件并重新登录?有什么我想念的吗?这是不属于VSTS和TFS的功能吗?
我试图将浮点十进制数与正则表达式匹配.小数点前可能有也可能没有数字,小数可能存在也可能不存在,如果存在则可能有或没有数字.(对于此应用程序,不允许使用前导+/-或尾随"E123").我写了这个正则表达式:
/^([\d]*)(\.([\d]*))?$/
Run Code Online (Sandbox Code Playgroud)
哪个正确匹配以下内容:
1
1.
1.23
.23
Run Code Online (Sandbox Code Playgroud)
但是,这也匹配空字符串或只是小数点的字符串,这是我不想要的.
目前我在运行正则表达式后检查$ 1或$ 3的长度大于0.如果不是,则无效.有没有办法可以在正则表达式中直接执行此操作?
我最近遇到了一个奇怪的问题RSACryptoServiceProvider.VerifyHash.
我有一个使用它进行解密的Web应用程序.当运行Web服务的用户通过我们的VPN这样做时,它变得非常慢.当他们没有连接或互联网连接时,他们没事.
经过多次挖掘后,我发现每次RSACryptoServiceProvider.VerifyHash调用它都需要检查LDAP请求MyMachineName\ASPNET.
对于我们的WebDev(基于cassini)服务器而言,这不会发生,因为它们作为当前用户运行,并且它只是在VPN上非常慢,但它根本不会发生.
由于以下几个原因,这似乎是错误的:
有谁知道为什么会发生这种情况或如何最好地解决它?
这个PHP代码......
207 if (getenv(HTTP_X_FORWARDED_FOR)) {
208 $ip = getenv('HTTP_X_FORWARD_FOR');
209 $host = gethostbyaddr($ip);
210 } else {
211 $ip = getenv('REMOTE_ADDR');
212 $host = gethostbyaddr($ip);
213 }
Run Code Online (Sandbox Code Playgroud)
抛出这个警告......
警告: gethostbyaddr()[function.gethostbyaddr]:第212行的C:\ inetpub ...\filename.php中的地址不是abcd格式
似乎$ ip是空白的.
我有关于在数据库领域的一个问题是至极可能显示不同的单位,但仅存储在一个措施,如"高度",例如.
应该在哪里说明"模式单位"?当然,在文档中等...但是我们都知道没有人阅读文档,并且自我文档化的东西是可取的.
从实际的角度来看,您如何看待在数据库字段中编码(例如height_cm)?
我发现这个奇怪的在第一次看,但我觉得它实用避免任何错误时,不同的人直接处理数据库和"模式单位"永远不会改变.
你怎么看?.
问候.
在我的vb.net程序中,我使用webbrowser向用户显示HTML预览.我以前在服务器上抓取HTML,然后返回异步线程并引发事件以使用我返回的HTML字符串填充WebBrowser.DocumentText.
现在我将其设置为获取客户端上的所有信息,而不必访问服务器,我正在尝试提升相同的事件.我看着代码经过,它有正确的HTML字符串和一切,但当我尝试做
browser.DocumentText = _emailHTML
Run Code Online (Sandbox Code Playgroud)
DocumentText的内容仍为" <HTML></HTML>"
我只是想知道为什么没有设置DocumentText.有人有什么建议吗?
我决定使用log4net作为新web服务项目的记录器.一切都运行正常,但我收到了很多消息,如下面的消息,对于我在我使用的每个log4net标签web.config:
找不到元素'log4net'的架构信息......
以下是我的相关部分web.config:
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level: %message%newline" />
</layout>
</appender>
<logger name="TIMServerLog">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)
解决了:
xml文件.确保.xml用作文件扩展名.AssemblyInfo.cs:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xmlFile.xml", Watch = true)]
Run Code Online (Sandbox Code Playgroud)
nemo补充道:
只需向任何人发出警告,请遵循此主题中的答案建议.将x4中的log4net配置放在Web服务的根目录下可能存在安全风险,因为默认情况下任何人都可以访问它.如果您的配置包含敏感数据,请注意,您可能希望将其放在何处.
@wcm:我尝试使用单独的文件.我添加了以下行AssemblyInfo.cs
[assembly: …Run Code Online (Sandbox Code Playgroud) .net ×2
algorithm ×1
asp.net ×1
assert ×1
browser ×1
c ×1
c# ×1
coding-style ×1
database ×1
encryption ×1
html ×1
ip-address ×1
log4net ×1
logging ×1
php ×1
refactoring ×1
regex ×1
resize ×1
schema ×1
syntax ×1
tfs ×1
web-config ×1
web-services ×1
winforms ×1
winmerge ×1