问题标签 [puzzle]

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.

0 投票
4 回答
242 浏览

c - 部分乘法或包装乘法 - 任何人都可以识别此功能吗?

我希望深入了解看起来像部分乘法的东西。

该函数迭代多次,如下:

有没有计算这个结果的捷径?
对于 x == y 的情况呢?

任何指向更多信息的链接都会有所帮助..

0 投票
5 回答
4397 浏览

language-agnostic - 从任何基数的比率展开中获取特定数字(x/y 的第 n 位)

有没有一种算法可以计算重复小数比的位数而无需从头开始?

我正在寻找一种不使用任意大小整数的解决方案,因为这应该适用于十进制扩展可能任意长的情况。

例如,33/59 扩展为 58 位的重复小数。如果我想验证这一点,我如何计算从第 58 位开始的数字?

已编辑 - 比率为 2124679 / 2147483647,如何获得第 2147484600 到第 2147484700 位的百位数字。

0 投票
10 回答
36689 浏览

algorithm - 求解非图(Picross)

现在是星期五下午,让我们来解决一个有趣的拼图/算法问题。

我最喜欢的任天堂 DS 游戏之一是Picross DS。游戏非常简单,它涉及解决称为Nonograms的谜题。您可以在这里尝试一个简单的在线 Picross 克隆:TylerK 的 Picross

非图是一个网格,为网格的每一行和每一列定义了数字序列。这些数字定义了该行/列的“填充”方块块,但未定义块两侧的未填充区域。例如,如果您有一行如下所示:


(来源:steam-punk.net

该行的可能解决方案包括:


(来源:steam-punk.net(来源:steam-punk.net

等等

“4 5”只是告诉您,在该行的某处,有 4 个连续块填充,然后是 5 个连续块填充。这些将是唯一填充的块,它们之前/之后的空间量是没有定义的。

当所有行和列都满足其定义且没有任何矛盾时,拼图就完成了。

概念上非常简单的游戏,但手动解决其中一些可能需要相当长的时间。Picross DS 的谜题逐渐增大到 25x20 的网格,这通常需要我大约半小时才能解决。

然而,我总是想到,编写一个程序来解决这将是一个非常简单的游戏。我从来没有接触过它,但也许这里的一些人会喜欢这个挑战。如果发布了相当数量的解决方案,我将在一个大谜题上对它们进行基准测试,类似于Paolo Bergantino 在这里用他的 Boggle question 所做的Nonogram Wikipedia 页面上有很多关于破解谜题的方法的信息,如果你想参考的话。

这是来自 TylerK 的 Picross 的 Puzzle #1 的易于解析的定义,因此您可以为程序提供一些内容。第 1 行是拼图尺寸(可能不需要),第 2 行是行定义,第 3 行是列定义。这只是想到的第一件事,所以如果有人能想到更好的输入格式,请随时评论或编辑这篇文章以包含它。

0 投票
14 回答
1741 浏览

puzzle - 代码高尔夫:自动机

我使用这些规则制作了终极笑声发生器。你能用你最喜欢的语言巧妙地实现它吗?

规则:

在每次迭代中,都会发生以下转换。

0 投票
10 回答
55336 浏览

puzzle - 检查一个数是否能被3整除

编写代码来判断一个数是否能被 3 整除。函数的输入是单个位,0 或 1,如果目前收到的数字是能被 3 整除的数字的二进制表示,则输出应为 1,否则零。

例子:

这是基于一个面试问题。我要求绘制逻辑门,但由于这是 stackoverflow,我将接受任何编码语言。硬件实现(verilog 等)的奖励积分。

第 a 部分(简单):第一个输入是 MSB。

B 部分(稍微难一点):第一个输入是 LSB。

c 部分(困难):( a) 或 (b) 哪个更快更小?(理论上不是 Big-O 意义上的,但实际上更快/更小。)现在采用较慢/较大的,并使其与更快/较小的一样快/小。

0 投票
5 回答
401 浏览

algorithm - 在天体点唱机上实施洗牌

如何为“Celestial Jukebox”实施洗牌?

更准确地说,在每个时间 t,返回一个介于 0..n(t) 之间的均匀随机数,这样整个序列中没有重复,n() 随着时间的推移而增加。

对于具体的例子,假设一个固定费率的音乐服务允许通过从 0 开始的索引号播放目录中的任何歌曲。每隔一段时间,就会添加新歌曲,从而增加索引号的范围。目标是每次播放一首新歌(假设目录中没有重复)。

一个理想的解决方案在现有硬件上是可行的——我如何在 8MB 的 DRAM 中硬塞一个包含 600 万首歌曲的列表?同样,高歌曲数会加剧 O(n) 选择时间。

-- 对于 LCG 发生器,给定 0..N 0上部分耗尽的 LCG ,是否可以将其转换为 0..N 1上的不同 LCG (其中 N1 > N0),不会重复耗尽的序列。
- 检查一首特定的歌曲是否已经播放过似乎很快就会失控,尽管这可能是唯一的方法?是否有有效的数据结构?

0 投票
25 回答
33710 浏览

algorithm - 用于 M 位置的圆移位 N 大小数组的最快算法

M个位置的圆移阵列最快的算法是什么?
例如,[3 4 5 2 3 1 4]移位 M = 2 个位置应该是[1 4 3 4 5 2 3]

非常感谢。

0 投票
2 回答
279 浏览

algorithm - 奶油沼泽拼图中的小精灵

(感谢 Rich Bradshaw)

我正在为以下难题寻找最佳策略。

作为新的仙王,你有责任绘制王国的奶油沼泽地图。
沼泽笼罩在飘渺的薄雾中,蛋奶沙司散落在各处。
您可以将您的小精灵送过沼泽,并附有在每个点低飞或高飞的指示。
如果小精灵从蛋奶冻上俯冲下来,它会分心,不会完成它的序列。由于雾气很浓,你只知道小精灵是否到达了另一边。

在编码方面..

这将返回小精灵是否退出给定的猛扑序列。

最简单的方法是一次性传递序列。这揭示了“大小”尝试中的所有蛋奶冻岛。
我更喜欢与蛋奶冻的数量成比例的东西 - 但在序列方面存在问题,例如:

也欢迎链接到这个谜题的其他形式。

0 投票
5 回答
17403 浏览

c# - 十进制值检查是否为零

我正在尝试编写一个接受 2 个参数的除法方法。

现在,如果除数为 0,我们得到不能除以零的错误,这没关系。

我想做的是检查除数是否为0,如果是,将其转换为1。有没有办法在我的方法中没有很多if语句的情况下做到这一点?我认为很多 if() 会造成混乱。我知道数学上不应该这样做,但我有其他功能。

例如:

可以不做if()声明吗?

0 投票
6 回答
1273 浏览

java - 这个Java代码如何编译?

一位同事遇到了一些看起来像这样的代码,但无法理解它是如何编译的:

基本上,在方法中间粘贴了一个随机 URL,但javac并不在意。

我们解决了,所以如果没有其他人发现,我会发布答案,但我认为发布它很有趣。