DSA的人才库


9

我和一些朋友玩过DSA(主要是德国的桌面RPG,与D&D相似)。我想知道通过传球的机会是多少,因此您将必须编写一些代码来进行计算。

您的角色由统计信息(从8到14)和(TV)才能值(0到21)定义。现在,我们将以攀登为例。

才能测试

一个天赋(攀爬)如下所示:(勇气,敏捷,力量)电视:7.要测试一个天赋的角色,请使用20面骰子在这些统计数据上滚动,并尝试使其低于或等于该统计数据你做得很好。如果没有,您可以使用电视点以1:1的比例减少滚动。

一位有勇气12,敏捷13和力量14的猎人正在尝试爬树,他的电视是7。

他掷出3,该值低于12,因此他通过了掷骰。

然后他将17、17比4翻了17、17,所以剩下4个电视用完了,剩下3个。

对于最后一卷,您将获得14分。

所有的掷骰都通过了,猎人设法爬上了树,剩下了3台电视。

输入项

您选择的任何格式的4个值,取自您语言的标准输入。但是必须按此顺序。

例如12 13 14 712,13,14,7或为数组{12,13,14,7}或混合[12, 14, 8], 3

输出量

卷多久通过一次的机会。

例如(对于上述值)0.803

12,14,8,3 = 0.322

11,11,12,11 = 0.840

值得一提的是:这里再次不是格式化的问题,但可以按照自己的意愿按以下顺序输出:

failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7 

以此类推,直到没有电视。

12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273

12,14,8,3 = 0.678/0.056/0.051/0.047/0.168

挑战,规则和奖金

  • 您将发现在给定输入的情况下有机会使掷骰通过率达到+-0.5%。

  • 如果您的程序还输出了通过n电视的机会(请参见输出),则为-20%。

  • 这是 ,因此以字节为单位的最短代码胜出!


1
“ 4个您选择的任何格式的值”是否包括采用不同顺序的值?
Martin Ender'1

1
还是类似的东西[12, 14, 8], 3
Martin Ender'1

我以为我已经包括了订单,现在就在其中。也允许混合输入。
Eumel,2016年

Answers:


2

Pyth- 21 20 19字节

@ThomasKwa节省了1个字节

.Omgvzsg#0-VdQ^SyT3

测试套件


Pyth太好了……这是APL的问题类型,我在APL中只有27个问题。
lirtosiast

输入的顺序被假定为是stat,stat,stat,TV,尽管我现在只是指定了。但是,如果您可以轻松修改它,那将是很好的。你能解释一下吗?
Eumel,2016年

@Eumel肯定,更改订单应该不会有问题,我现在正在打电话,我回家后就去做。
Maltysen'1

1

Dyalog APL,28个字节

{(+/÷⍴)⍵≥∊+/¨0⌈(⊂⍺)-⍨¨⍳3⍴20}

此方法与@Maltysen的方法相同。如果我们只画几千个随机骰子掷骰,我们就不能保证 0.5%的准确性,所以我们取所有可能掷骰的平均值。这将三个统计数据作为左参数,而将人才价值作为右参数。

在这里尝试!

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.