程序设计

专业和发烧友程序员的问答

9
把猫扔出窗户
想象一下,您在猫的高楼大厦中。猫可以从低矮的窗户掉下来,但如果从高处摔落会死。您如何用最少的尝试次数找出猫可以存活的最长下落? 显然,如果您只有一只猫,则只能进行线性搜索。首先从一楼扔猫。如果它仍然存在,请从第二个开始扔掉。最终,从地板f掉下来的猫会死。然后,您知道f-1楼是最大安全楼。 但是,如果您有不止一只猫怎么办?现在,您可以尝试某种对数搜索。假设该建筑物有100层,而您有两只相同的猫。如果您将第一只猫扔出50层而死,那么您只需线性搜索50层。如果您第一次尝试选择较低的楼层,您甚至可以做得更好。假设您选择一次解决20层楼的问题,而第一个致命楼层是#50。在这种情况下,您的第一只猫将在20和40楼的飞行中幸存下来,然后从60楼死亡。您只需要分别检查41到49楼。总共进行了12次尝试,这比尝试使用二进制消除法所需的50次尝试要好得多。 通常,对于带有2只猫的n层建筑物,什么是最佳策略,哪一种是最坏情况的复杂性?n层和m只猫怎么办? 假设所有猫都是同等的:它们都将存活或死于从给定窗户掉落的猫。同样,每一次尝试都是独立的:如果一只猫摔倒幸存下来,那就完全没有伤害了。 这不是家庭作业,尽管我可能已经解决了一次学校作业。今天,这只是一个异想天开的问题,我不记得了。如果有人知道此问题或解决方案算法的名称,则奖励积分。

1
Angular.js vs Knockout.js vs Backbone.js [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 我正在考虑将Knockout或Angular或Backbone用于我的个人项目。我需要构建一些更大的,运行时间更长的客户端交互,以配合服务器端的工作。 我想要一种简单有效的方法来管理数据驱动的用户界面。 您将基于可行性和性能方面选择哪种框架来解决上述问题?

10
如何修复java.net.SocketException:管道损坏?
我正在使用apache commons http客户端使用post方法调用url来发布参数,它很少抛出以下错误。 java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105) at java.io.FilterOutputStream.write(FilterOutputStream.java:80) at org.apache.commons.httpclient.methods.ByteArrayRequestEntity.writeRequest(ByteArrayRequestEntity.java:90) at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499) at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) 有人可以建议导致此异常的原因以及如何对其进行调试吗?
150 java  exception  post  sockets 

9
红宝石中的舍入浮点
我在四舍五入时遇到问题。我有一个浮点数,我想四舍五入到小数点后一位。但是,我只能使用.round基本上将其转换为int的含义,这意味着2.34.round # => 2. 是否有一种简单的效果方法可以执行以下操作2.3465 # => 2.35

2
在Chrome和Firefox中秘密复制到剪贴板的JavaScript功能?
更新资料 好像 浏览器已经开始在JS中原生支持复制 在Mac上的Chrome和Firefox的控制台窗口中,我可以执行 copy("party in your clipboard!"); 然后文本被复制到我的剪贴板中。我已经搜索过SO和Google,但似乎找不到任何东西。 这些特定于每个浏览器吗? 在哪里可以找到有关这些JavaScript函数的更多信息? 浏览器版本: 执行“复制”时从Chrome控制台返回的JavaScript function (object) { if (injectedScript._type(object) === "node") { var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false); InjectedScriptHost.copyNode(nodeId); } else InjectedScriptHost.copyText(object); } 此代码是什么意思? 这是在Chrome控制台中执行复制功能并禁用了所有Chrome扩展程序的2张屏幕截图

3
.NET 4.5 beta中此FatalExecutionEngineError的原因是什么?[关闭]
这个问题不太可能对将来的访客有所帮助;它仅与较小的地理区域,特定的时间段或格外狭窄的情况(通常不适用于Internet的全球受众)有关。要获得使该问题更广泛适用的帮助,请访问帮助中心。 7年前关闭。 下面的示例代码是自然发生的。突然,我的代码出现了一个听起来很讨厌的FatalExecutionEngineError异常。我花了30分钟的时间尝试隔离并最小化罪魁祸首样本。使用Visual Studio 2012作为控制台应用程序进行编译: class A<T> { static A() { } public A() { string.Format("{0}", string.Empty); } } class B { static void Main() { new A<object>(); } } 应该在.NET Framework 4和4.5上产生此错误: 这是一个已知的错误吗,原因是什么,我应该怎么做才能缓解它?我当前的解决方法是不使用string.Empty,但是我是否吠错了树?更改该代码的任何内容都会使其发挥预期的作用,例如,删除空的static构造函数A,或将类型参数从更改object为int。 我在笔记本电脑上尝试了此代码,但没有抱怨。但是,我确实尝试了我的主应用程序,并且它在笔记本电脑上也崩溃了。减少问题时,我一定已经整理了一些东西,我看看能否弄清楚那是什么。 我的笔记本电脑使用与框架4.0相同的代码崩溃,但即使在使用4.5时也崩溃了。两种系统都使用最新更新的VS'12(7月?)。 更多信息: IL代码(编译为Debug / Any CPU / 4.0 / VS2010(不是IDE应该重要吗?)):http : //codepad.org/boZDd98E 没有看到VS 2010与4.0。在没有优化的情况下崩溃,没有目标CPU,连接了调试器/未连接调试器,等等。- Tim …
150 c#  clr 


3
如何重命名AWS S3存储桶名称
毕竟,在进行了艰苦的移植工作之后,只需意识到如果需要使用CNAME来提供内容(例如media.abc.com)。存储桶名称需要以media.abc.com/S3/amazon.com开头,以确保其正常工作。 只需意识到S3不允许从控制台直接重命名即可。 有什么办法可以解决这个问题?

6
android从服务开始活动
Android: public class LocationService extends Service { @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); startActivity(new Intent(this, activity.class)); } } 我从 Activity 在Activity如果条件满足启动 startService(new Intent(WozzonActivity.this, LocationService.class)); 从我LocationService上面提到的无法启动Activity,如何获取当前正在Activity服务类中运行的上下文?

5
g ++ -Wreorder有什么意义?
g ++ -Wall选项包括-Wreorder。下面介绍此选项的作用。对我来说,为什么有人会关心(尤其是默认在-Wall中将其打开)并不明显。 -Wreorder(仅C ++) 当代码中给定的成员初始化程序的顺序不正确时发出警告 匹配必须执行的顺序。例如: 结构A { 我 int j; A():j(0),i(1){} }; 编译器将重新排列i和j的成员初始化器。 匹配成员的声明顺序,对此发出警告 影响。该警告由-Wall启用。


2
为什么“ 397”用于ReSharper GetHashCode覆盖?
像你们中的许多人一样,我使用ReSharper来加快开发过程。当您使用它覆盖类的相等性成员时,它为GetHashCode()生成的代码源如下: public override int GetHashCode() { unchecked { int result = (Key != null ? Key.GetHashCode() : 0); result = (result * 397) ^ (EditableProperty != null ? EditableProperty.GetHashCode() : 0); result = (result * 397) ^ ObjectId; return result; } } 当然,我那里有一些我自己的成员,但是我想知道为什么是397? 编辑:所以我的问题最好用这样的措辞,因为除了397质数以外,是否还有一些“特殊”的质数?


9
angularjs:ng-src等效于background-image:url(…)
在angularjs中,您具有标记ng-src,其目的是在angularjs评估介于{{和之间的变量之前,不会收到无效网址的错误}}。 问题是,我使用了很多DIV,并将其background-image设置为url。我之所以这样做,是因为CSS3具有出色的属性background-size,可以将图像裁剪为DIV的确切大小。 唯一的问题是,由于创建ng-src标记的原因完全相同,因此我收到很多错误:我的url中有一些变量,浏览器认为该图像不存在。 我意识到有写粗略的可能性{{"style='background-image:url(myVariableUrl)'"}},但这似乎是“肮脏的”。 我搜索了很多内容,却找不到正确的方法。由于所有这些错误,我的应用变得一团糟。
150 css  angularjs 

20
公式px到dp,dp到px android
我正在尝试计算可变数量的像素到与密度无关的像素,反之亦然。 该公式(px to dp): dp = (int)(px / (displayMetrics.densityDpi / 160));不适用于小型设备,因为它被零除。 这是我的dp至px公式: px = (int)(dp * (displayMetrics.densityDpi / 160)); 有人可以给我一些指示吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.