问题标签 [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.
c - 部分乘法或包装乘法 - 任何人都可以识别此功能吗?
我希望深入了解看起来像部分乘法的东西。
该函数迭代多次,如下:
有没有计算这个结果的捷径?
对于 x == y 的情况呢?
任何指向更多信息的链接都会有所帮助..
language-agnostic - 从任何基数的比率展开中获取特定数字(x/y 的第 n 位)
有没有一种算法可以计算重复小数比的位数而无需从头开始?
我正在寻找一种不使用任意大小整数的解决方案,因为这应该适用于十进制扩展可能任意长的情况。
例如,33/59 扩展为 58 位的重复小数。如果我想验证这一点,我如何计算从第 58 位开始的数字?
已编辑 - 比率为 2124679 / 2147483647,如何获得第 2147484600 到第 2147484700 位的百位数字。
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 行是列定义。这只是想到的第一件事,所以如果有人能想到更好的输入格式,请随时评论或编辑这篇文章以包含它。
puzzle - 代码高尔夫:自动机
我使用这些规则制作了终极笑声发生器。你能用你最喜欢的语言巧妙地实现它吗?
规则:
在每次迭代中,都会发生以下转换。
puzzle - 检查一个数是否能被3整除
编写代码来判断一个数是否能被 3 整除。函数的输入是单个位,0 或 1,如果目前收到的数字是能被 3 整除的数字的二进制表示,则输出应为 1,否则零。
例子:
这是基于一个面试问题。我要求绘制逻辑门,但由于这是 stackoverflow,我将接受任何编码语言。硬件实现(verilog 等)的奖励积分。
第 a 部分(简单):第一个输入是 MSB。
B 部分(稍微难一点):第一个输入是 LSB。
c 部分(困难):( a) 或 (b) 哪个更快更小?(理论上不是 Big-O 意义上的,但实际上更快/更小。)现在采用较慢/较大的,并使其与更快/较小的一样快/小。
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),不会重复耗尽的序列。
- 检查一首特定的歌曲是否已经播放过似乎很快就会失控,尽管这可能是唯一的方法?是否有有效的数据结构?
algorithm - 用于 M 位置的圆移位 N 大小数组的最快算法
M个位置的圆移阵列最快的算法是什么?
例如,[3 4 5 2 3 1 4]
移位 M = 2 个位置应该是[1 4 3 4 5 2 3]
。
非常感谢。
algorithm - 奶油沼泽拼图中的小精灵
(感谢 Rich Bradshaw)
我正在为以下难题寻找最佳策略。
作为新的仙王,你有责任绘制王国的奶油沼泽地图。
沼泽笼罩在飘渺的薄雾中,蛋奶沙司散落在各处。
您可以将您的小精灵送过沼泽,并附有在每个点低飞或高飞的指示。
如果小精灵从蛋奶冻上俯冲下来,它会分心,不会完成它的序列。由于雾气很浓,你只知道小精灵是否到达了另一边。
在编码方面..
这将返回小精灵是否退出给定的猛扑序列。
最简单的方法是一次性传递序列。这揭示了“大小”尝试中的所有蛋奶冻岛。
我更喜欢与蛋奶冻的数量成比例的东西 - 但在序列方面存在问题,例如:
也欢迎链接到这个谜题的其他形式。
c# - 十进制值检查是否为零
我正在尝试编写一个接受 2 个参数的除法方法。
现在,如果除数为 0,我们得到不能除以零的错误,这没关系。
我想做的是检查除数是否为0,如果是,将其转换为1。有没有办法在我的方法中没有很多if语句的情况下做到这一点?我认为很多 if() 会造成混乱。我知道数学上不应该这样做,但我有其他功能。
例如:
可以不做if()
声明吗?
java - 这个Java代码如何编译?
一位同事遇到了一些看起来像这样的代码,但无法理解它是如何编译的:
基本上,在方法中间粘贴了一个随机 URL,但javac
并不在意。
我们解决了,所以如果没有其他人发现,我会发布答案,但我认为发布它很有趣。