首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冗长的7条规则数组

冗长的7条规则数组
EN

Code Golf用户
提问于 2017-04-13 04:20:06
回答 7查看 1.5K关注 0票数 18

创建一个程序,生成具有随机数的随机长度数组,然后应用一系列更改数组的规则。应用规则后,除非另有规定,否则打印数组的和。

阵列设置

数组的随机长度必须在5和10之间,随机整数必须包含在1和20之间。每个数组长度应该具有相同的发生概率,而每个整数应该具有相同的每个元素被选择的概率。

7 rules

这些规则的作用应像按顺序适用一样(例如:规则1先于规则2),只适用一次。为了证明规则应用程序,必须在每个规则应用程序之后和应用任何规则之前将数组打印到控制台。

  1. 如果数组包含7,则从每个元素中减去1。
  2. 如果应用了规则1,并且数组现在包含0,则向每个元素添加1。
  3. 如果数组包含13,则从数组中排除13和后面的所有元素。
  4. 如果数组包含2,则排除所有奇数。
  5. 如果数组包含20,而第三个元素为偶数,则返回20作为和,然后终止。如果存在一个20,而第三个元素是奇数,则返回数组长度的20倍作为和,然后终止。
  6. 如果和大于50,则重复移除最后一个元素,直到它小于或等于50为止。
  7. 如果数组包含16,则以十进制和十六进制形式打印和。

示例

这是一个初始数组,

代码语言:javascript
复制
[20, 2, 5, 7, 14, 8]

第1条可适用于:

代码语言:javascript
复制
[19, 1, 4, 6, 13, 7]

接下来适用第3条:

代码语言:javascript
复制
[19, 1, 4, 6]

不需要其他规则,所以程序返回30作为和。

Notes

  • 我不是一个有经验的代码高尔夫球手,尽管我可以说我的个人记录是用Python 3编写的,有369字节。
  • 这些规则不一定要按顺序实际应用,但必须表现得像它们一样。
EN

回答 7

Code Golf用户

发布于 2017-04-13 10:19:37

05AB1E,91字节

代码语言:javascript
复制
5TŸ.RF20©L.R})=D7åi<=D0åi>=}}D13åiD13k£=}D2åiDÈÏ=}D®åiDgs2èÉ®si*},q}[DO50›_#¨=]D16åiDOH,}O,

在网上试试!有输入

票数 6
EN

Code Golf用户

发布于 2017-05-13 02:52:27

Ruby2.4,260个字节

Ruby2.4是Enumerable#sum所必需的。

代码语言:javascript
复制
p a=(1..s=5+rand(5)).map{1+rand(19)}
a.map!{|i|i-1}if a.index 7
p a
a.map!{|i|i+1}if a.index 0
p a
a.pop s-(a.index(13)||s)
p a
a.reject! &:odd?if a.index 2
p a
a.index(20)?p(20*[1,s][(a[2]||1)%2]):((a.pop;p a)while a.sum>50
p m=a.sum;puts"%x"%m if a.index 16)

在网上试试! ( repl.it和tio.run还不支持Ruby2.4,因此这个在线版本用具有相同行为的inject(:+)代替sum )。

票数 2
EN

Code Golf用户

发布于 2017-04-13 15:40:30

R (3.3.1),325个字节

非常幼稚的实现;我想我可能可以使它更短一些。

代码语言:javascript
复制
s=sample(1:20,sample(5:10,1));print(s);if(7%in%s){s=s-1;print(s);if(0%in%s)s=s+1;print(s)};if(13%in%s){s=s[1:(which(s==13)-1)];print(s)};if(2%in%s){s=s[!(s%%2)];print(s)};if(20%in%s){if(s[3]%%2){20*length(s);print(s)}else{20;print(s)}};while(sum(s)>50){s=s[-length(s)];print(s)};if(16%in%s){print(as.hexmode(sum(s)))};sum(s)
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/116318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档