首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >给我一些合适的车牌!

给我一些合适的车牌!
EN

Code Golf用户
提问于 2014-07-19 18:09:11
回答 14查看 5.8K关注 0票数 17

场景:你是一名软件设计师,在一家非政府运营的公司工作,该公司为汽车和其他车辆设计车牌。你被要求开发生成车牌的软件。在你上班之前,你的老板制定了这些基本规则。

牌照不能包含:

  • ASS
  • 666
  • 69<any number here>
  • <any number here>69
  • KKK
  • SHT

规则和要求:

  • 车牌必须是随机生成的。
  • 一旦生成随机车牌,就不能再次生成相同的车牌。
  • 您必须输出至少200个独特的车牌。如果你想要的话,你可以产生更多。
  • 您可以将生成的盘子存储在文件中,以“记住”它们。
  • 车牌包含两个部分,一个只包含三个字母,另一个只包含三个数字,用破折号分隔,如:233-ADFADF-233
  • 您只能使用数字和大写字母。
  • 车牌可以写到标准文件或文件中。
  • 车牌的每一个“侧面”将包含三个数字或字母。
  • 这是一个密码-高尔夫,所以最短,最受欢迎,答案获胜。获胜者将在七天后选出。

通用规则

  • 答案应包括但不限于以下内容。
  • 语言名称。
  • 字符计数。
  • 文件大小。
  • 如何运行代码。
  • 密码本身。
  • 示例: Python 234个字符或Python23MB。

如果我需要澄清任何其他细节,请在评论中提及,我将把它添加到我的帖子中。不管怎样,祝你好运,给我一些合适的车牌!

更新1:获胜者将在稍早时被选中。

结果我很快就要去旅行了,所以我将在世界协调时间7月25日00:00左右选出一位获奖者。在获胜者被选中后,你仍然可以提交项目,只需知道获胜者已经被选中。白。

更新2:赢家!

我们有胜利者!耶!奶酪和葡萄酒给每一个参与的人!是谁赢了。

  • 第一名:安杰尔-巴什(95个字符)
  • 第二名: Martin Büttner - Mathematica (182个字节)
  • 第二名:埃米利奥·M·布马查-派格(92 ?)
  • 第二名:彼得·泰勒-高尔夫剧本(98个角色)
  • 第三名:马克·托马斯-红宝石(127个字符)

哇,三连冠。哇。比赛结束了,但是如果你愿意的话,可以随时提交参赛作品。白!

EN

回答 14

Code Golf用户

发布于 2014-07-20 02:09:28

皮格 - 92

代码语言:javascript
运行
复制
Pe(Se(Re.sub(".*(666|69|ASS|KKK|SHT).*","",J(RSm(STuc*3,3)+[j]+RSm(STd*3,3)))for j in'-'*K))

现在可以一致地从所有未使用的盘子中选择,保持OP的规格,同时缩短1个字符。

从理论上讲,999个板块的列表将包含足够多的重复,这样修整的版块将小于200。但这种可能性微乎其微。在十次试验中,我得到的最小长度是994。

编辑:更改999到K(这是pyg的1000),以保存两个字符根据比特人的建议。

票数 7
EN

Code Golf用户

发布于 2014-07-19 18:40:57

Mathematica,182个字节

啊,这太长了

代码语言:javascript
运行
复制
l={};While[Length[l=Union@Pick[l,StringFreeQ[l,"ASS"|"666"|"69"|"KKK"|"SHT"]]]<200,AppendTo[l,RandomSample[FromCharacterCode/@{48+9~(r=RandomInteger)~3,65+25~r~3}]~Riffle~"-"<>""]];l

不毛之地

代码语言:javascript
运行
复制
l = {};
While[
  Length[
    l = Union@
      Pick[l, StringFreeQ[l, "ASS" | "666" | "69" | "KKK" | "SHT"]]
  ] < 200,
  AppendTo[l, 
   RandomSample[
      FromCharacterCode /@ {48 + 9~(r = RandomInteger)~3, 
        65 + 25~r~3}]~Riffle~"-" <> ""]
  ];
l

相当直截了当。产生随机的板块,过滤掉重复的和禁止的,直到找到200。

票数 5
EN

Code Golf用户

发布于 2014-07-20 15:18:45

Python2.7-258个字符

我不是一个专业的程序员,所以我要说我对结果很满意。

代码语言:javascript
运行
复制
import random as o
r=o.randint
t,j,k=[],0,""
b=["SHT","KKK","ASS","69","666"]
for i in range(200):
 l,j=b[0],b[4]
 while any(w in l for w in b):
  l,j="",""
  for i in range(3):
   l+=chr(r(65,90))
   j+=str(r(0,9))
 t.append(l+'-'+j)
print "\n".join(set(t))

文件大小为4.0K,使用python file.py运行!

票数 4
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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