Tag: algorithm

如何有效地架起台球8球游戏?

由于八球比赛的撞球可以在多种规则下完成,下面是我所说的撞球: 即8球必须在中心,沿着两侧的条纹和固体必须交替。 剩下的两个球(条纹和实心)并不重要。 假设你刚刚完成了一场比赛,收集球,把它们放在架子上,并继续安排他们开始一个新的。 他们现在是随机的顺序。 你如何继续? 免责声明:油漆艺术如下 一个简单的方法是按顺序开始,顶部 – >底部和左 – >右。 所以举个例子,我们假设1在正确的位置。 5不是,我们把它换成2 ,然后我们把4换成3 (或8 ),但是这样做已经是效率低下了,因为我们已经把4移到了中心位置,或者把4移到了4的位置 – 也就是不是它必须在哪里结束。 也有决定哪些types的球我们想要在angular落里被做。 你如何决定这个前期? 你应该考虑到已经有多less球? 在我的例子中,如果你想要灰色的angular落,你已经有3个(球1,10,14)。 如果你想要在angular落里的白色的,你只有2个在位(2,11)。 这件事情呢? 为了使这个正式化,我们可以假设有这个 二 我们可以做三个操作: 交换两个相邻的球 交换两个不相邻的球 旋转机架 既然我们可以用双手,假设我们可以平行第一个操作(同时交换两个球),而我们一次只能交换两个不相邻的球。 什么方法最适合这个任务,以最小化时间(以所描述的时间单位)? 贪婪是最好的吗? (我想我是这样做的,当我把它们架起来的时候) 编辑:根据现有的(或以前的答案) – 你可能会认为有更多的条纹比实体的angular落意味着步伐会喜欢angular落 – 并不是说​​这是不正确的,但如果你做出这个假设,请certificate。

通过排列四个给定的数字来查找最大可能时间HH:MM

我最近在工作上进行了一次编码testing。 这是我真正努力的任务之一,并想知道什么是最好的方法来做到这一点。 我用了一些if和if,不是最干净的解决scheme,而是完成了工作。 我被问到的问题是: 将4位数字格式化为24小时制(24小时制),find可能的最大(最新)时间,考虑到最长时间为23分钟,最长分钟数为59分钟。如果不可能,则返回NOT POSSIBLE。 举个例子: 6,5,2,0将是20:56 3,9,5,0将是09:53 7,6,3,8将是不可能的 必须返回时间或string的示例函数看起来像这样,A,B,C,D是与上面逗号分隔列表不同的数字: function generate(A, B, C, D) { // Your code here } 人们将如何解决这个问题?

什么是折叠一组潜在重叠范围的好的通用algorithm?

我有一个方法来获得这个类的一些对象 class Range<T> { public T Start; public T End; } 在我的情况下, T是DateTime ,但为简单起见使用int 。 我想要一个方法,将这些范围折叠成覆盖相同“区域”但不重叠的方法。 所以,如果我有以下范围 1至5 3至9 11到15 12至14 13到20 该方法应该给我 1至9 11至20 猜猜这会被称为工会? 我想象的方法签名可能看起来像这样: public static IEnumerable<Range<T>> Collapse<T>( this IEnumerable<Range<T>>, IComparable<T> comparer) { … } 我在这里看到了一些类似的其他问题,但我还没有find一个这样的实现。 这个答案和其他一些相同的问题的答案描述algorithm,但我不太清楚,如果我理解的algorithm。 不是特别擅长实现algorithm,所以我希望这里有人能帮助我。

遗传algorithm和PYTHON的多目标优化:库/工具的使用?

我正在扫描互联网上的图书馆可用于使用遗传algorithm与潜在发展的多目标algorithm,如Python的NSGAII。 你有什么build议吗? 这是我到目前为止: Pyevolve :有据可查,但不包括多个目标 Pygene :似乎没有包含多个目标 似乎有充分的文件logging,包括多目标 ins : 声 :似乎确定无疑 ,包括多目标 问题不一定是关于哪一个更好,而更多关于这些库的特征以及从单一目标优化切换到多目标优化的可能性。 谢谢

在一大组string中查找类似的string组

我有一个相当大的string集合(比如说100),它有许多以相似性为特征的小组。 我试图find/devise一个能够合理高效地find这些组的algorithm。 举个例子,假设input列表在左边,输出组在右边。 Input Output —————– —————– Jane Doe Mr Philip Roberts Mr Philip Roberts Phil Roberts Foo McBar Philip Roberts David Jones Phil Roberts Foo McBar Davey Jones => John Smith David Jones Philip Roberts Dave Jones Dave Jones Davey Jones Jonny Smith Jane Doe John Smith Jonny Smith 有谁知道有什么办法来合理有效地解决这个问题? find相似的string的标准方法似乎是Levenshtein距离,但我不明白如何在这里使用它,而不必将每个string与列表中的每个string进行比较,然后以某种方式决定差异决定两个string是否在同一组中的阈值。 另一种方法是将string散列到一个整数的algorithm,其中相似的string散列到在数字行上靠近的整数。 我不知道什么algorithm,即使有,即使存在 有人有任何想法/指针吗? […]

获取图像主色的快速方法

我有一个关于如何获得图像的主色调(照片)的问题。 我想到了这个algorithm:循环遍历所有的像素,并得到他们的颜色,无论是红色,绿色,黄色,橙色,蓝色,洋红色,青色,白色,灰色或黑色(有一定的余量当然),它的黑暗(光,正常),然后检查哪些颜色发生最多。 我认为这是缓慢的,不是很精确。 有没有更好的办法? 重要的是,它是从iPhone或iPod touch摄像头拍摄的最多5 Mpx的UIImage。 它必须快速的原因是,简单地显示一个进度指示器没有多大意义,因为这是一个应用程序的视力不佳,或根本没有视线。 因为它是用于移动设备的,所以可能不需要太多内存(最多50 MB)。

Enumerable.Single的错误实现?

我通过reflection器在Enumerable.cs中遇到了这个实现。 public static TSource Single<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { //check parameters TSource local = default(TSource); long num = 0L; foreach (TSource local2 in source) { if (predicate(local2)) { local = local2; num += 1L; //I think they should do something here like: //if (num >= 2L) throw Error.MoreThanOneMatch(); //no necessary to continue } […]

`git diff –patience`和`git diff –histogram`有什么区别?

这个较早的问题要求提供4种不同的Git diff策略之间的差异,但唯一解释的差异是myers和patience之间的差异,这在其他地方很好解释。 histogram策略如何工作? 它与patience什么区别? git-diff手册页只是说它“把耐心algorithm延伸到”支持低出现的共同元素“。 其他网页提到它更快,它来自JGit,但是它们没有解释它的algorithm或结果在哪里或如何与patience不同 。 在哪里可以find与patiencealgorithm相关的histogramalgorithm的描述 ,与Bram Cohen对patiencealgorithm的原始描述具有相同的细节水平? (如果只是执行性能问题,没有任何情况会产生不同的结果,为什么它不是作为patience的新后端来实现?

如何在不读取其全部内容的情况下缩小压缩文件?

我想模仿gzcat |的function 尾巴 这对于有大文件(几GB左右)的时候会有帮助。 我能不能从头开始读这样一个文件的最后几行? 我怀疑这是不可能的,因为我猜gzip,编码将取决于所有以前的文本。 但是我还是想听听有没有人尝试过类似的方法 – 也许是通过一种可以提供这种function的压缩algorithm进行研究。

python图像识别

我想要做的是一个简单的应用程序的图像识别: 给定图像(500 x 500)pxs(1色背景) (50×50)像素将只有1个几何graphics(三angular形或方形或smaleyface :))。 python会对graphics进行识别并显示几何graphics。 任何链接? 任何提示? 任何API? thxs 🙂