您的键盘有问题。该Shift键有自己的主见。每次键入一个字符时,您都不知道它是否会移位(尽管它是50-50)。除标准字符键外,键盘上的所有功能均不起作用。没有鼠标或其他输入方式。
您以某种方式知道解决问题的唯一方法是编写一个输出Dear Computer, please stop giving me shift!
到stdout 的程序。幸运的是,您的IDE已打开,并且您能够运行程序,但是,当您键入它时,您当然不会知道将转换哪些字符。
您将使用什么顺序的按键来编写一个程序,使其有最大的机会进行首次尝试?
细节
您正在使用标准的QWERTY键盘,因此可以按50个字符键。
未转换版本(仅47个):
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
转换版本(仅47个):
~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
最后3个键是Enter,,Tab和Space,它们是相同的。
如果您使用错误的键盘键入了一个N字符序列,则可能会输出2 N-(空格字符计数)方式。例如,键入A Space m可能会产生
a m
or A m
或a M
or A M
。
编写一个程序,将这些字符并查看其所有2 N-(空格字符计数)可能的移位组合。输出Dear Computer, please stop giving me shift!
的组合越多越好。您的分数是有效组合(有效程序)的数量除以组合总数。最高分获胜。
笔记
- 对于有效的程序,
Dear Computer, please stop giving me shift!
唯一的副作用是精确打印而不要进行其他任何输出。 - 有效的程序不应接受输入。
- 无效的程序可以做任何事情。
- 评论可以在任何地方使用。
- 空格答案无法获胜,因为获得100%的分数(相对)是微不足道的。您仍然可以提交Whitespace解决方案以获取乐趣。
- 您的程序最多不能超过1024个字符。
更新:更改Stop giving me shift!
为Dear Computer, please stop giving me shift!
允许更复杂的答案。如果需要,现有答案可能会保持原样。