散発的なShiftキーを使用したプログラミング


39

キーボードに何か問題があります。Shiftキーは、独自の心を持っています。文字を入力するたびに、それがシフトして出てくるかどうかはわかりません(ただし、50〜50です)。標準の文字キーに加えて、キーボード上の何も機能していません。マウスなどの入力手段はありません。

どういうわけか、物事を修正する唯一の方法を知っているのは、Dear Computer, please stop giving me shift!stdoutに出力するプログラムを書くことです。幸い、IDEは開いていてプログラムを実行できますが、もちろん、入力するときにどの文字がシフトされるかはわかりません。

最初の試行で作業する可能性が最も高いプログラムを作成するために、どのキーシーケンスを使用しますか?

詳細

標準のQWERTYキーボードを使用しているため、50文字のキーを押すことができます。

シフトされていないバージョン(47のみ):

`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./

シフトバージョン(47のみ):

~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?

最後の3つのキーがありEnterTabSpaceシフトし、シフトされていない同じです。

これらの文字のNのシーケンスは、2 N-(空白文字カウント)の方法で、誤ったキーボードで入力した場合に出力される可能性があります。たとえば、タイピングA Space mにより a mor A mまたはa Morが生成される場合がありA Mます。

これらの文字をプログラムに記述し、その2 N-(空白文字数)の可能なシフトの組み合わせをすべて調べます。組み合わせが多いほど出力Dear Computer, please stop giving me shift!が良くなります。スコアは、有効な組み合わせ(有効なプログラム)の数を組み合わせの総数で割ったものです。最高のスコアが勝ちます。

ノート

  • 有効なプログラムの場合、正確に印刷Dear Computer, please stop giving me shift!し、stdout以外に何も印刷しないことが唯一の副作用です。
  • 有効なプログラムは入力を受け付けません。
  • 無効なプログラムは何でもできます。
  • コメントはどこでも使用できます。
  • 100%のスコアを得ることは(比較的)些細なことなので、ホワイトスペースの回答は勝つことができません。あなたはまだ楽しみのためにホワイトスペースソリューションを提出することができます。
  • プログラムの長さは最大1024文字でなければなりません。

更新:より複雑な回答ができるように変更Stop giving me shift!Dear Computer, please stop giving me shift!れました。必要に応じて、既存の回答をそのまま使用できます。


2
+1、それは大きな挑戦ですが、より長い出力文字列を与えてほしいと思います。いくつかの巧妙なトリックを考えましたが、それらはすべて、私が知っているすべての言語で18文字以上を必要とします。
ナサニエル14年

2
@ Calvin'sHobbiesしかし...現在の答えはどうですか?
ジョンドヴォルザーク14年

1
@ Calvin'sHobbies違います!また、1024の制限により、これも非常によく防止されます。これがすべて与えられたら、私はあなたが何を求めているのか不明確であるとしてこれを閉じることに投票しています。ほとんどの回答に不利になる仕様を変更しないでください
オプティマイザー14年

1
@ Calvin'sHobbies 1024文字の制限があるのは残念です。私は...私の答えを再考する必要がありますするつもりです
ジャスティン

1
@Optimizer少なくとも彼らは勝ちません。
jimmy23013 14年

回答:


46

Applescript、2 0(100%)

私はここで完璧なスコアを主張できると信じています:

  • Applescript Editor(私のIDE)は、コンパイル/実行時にすべてのキーワードを自動的に小文字に変換します
  • さらに、定義された変数とハンドラ名は、大文字と小文字を区別しないのです-ハンドラがたとえばmyFunc定義され、その後、IDEが自動的に変換されますMYFUNCmyfuncMyFuNc、などの参照にmyFunc
  • 私はアルファベット文字、スペース、改行のみを使用しているため、数字や句読点のシフトについて心配する必要はありません。

ここにあります:

global f
on j at a
set end of a to j
end
on c at a
j at a
j at a
end
on k at a
repeat with q in system info
j at a
end
end
on w at a
set d to count a
j at a
return string id d
end
on z at a
set end of f to a
end
set h to space
set y to h as list
k at y
k at y
set x to w at y
c at y
c at y
c at y
c at y
c at y
set q to w at y
k at y
c at y
c at y
copy y to b
c at y
set s to w at y
set d to w at y
set f to d as list
k at b
k at b
set a to w at b
c at b
j at b
set e to w at b
set y to w at b
set g to w at b
set d to w at b
set i to w at b
c at b
set l to w at b
set m to w at b
set n to w at b
set o to w at b
set p to w at b
j at b
set r to w at b
z at e
z at a
z at r
z at h
z at s
set s to w at b
set t to w at b
set u to w at b
set v to w at b
z at o
z at m
z at p
z at u
z at t
z at e
z at r
z at q
z at h
z at p
z at l
z at e
z at a
z at s
z at e
z at h
z at s
z at t
z at o
z at p
z at h
z at g
z at i
z at v
z at i
z at n
z at g
z at h
z at m
z at e
z at h
z at s
z at d
z at i
z at y
z at t
z at x
f as text

@kernighと@paradigmsortのおかげで、これは1020バイトになり、1024バイトの制限を超えてキークしました!

説明:

  • 出力文字列の文字はstring id <n>、ASCII値に対応する文字を返すを使用して生成されますn
  • 数字を避けているため、それぞれnをより基本的な方法で生成する必要があります。具体的にはn、リストをカウントし、そのリストに別のアイテムを追加して、それぞれを生成します。これrepeat with q in system infoにより、system info常に16項目のリストが返されるため、これを16回行うことができます。
  • 同様の手法を使用して、最終文字列の各文字を順番にリストに追加します。
  • 最後に、最後のリストが強制されtextて印刷されます。

出力:

osascriptインタプリタを使用しますが、Applescript Editorも同様に機能します。

$ # Interpret as-is:
$ osascript dearcase.scpt
Dear Computer, please stop giving me shift!
$ 
$ # Interpret all lower case:
$ tr A-Z a-z < dearcase.scpt | osascript
Dear Computer, please stop giving me shift!
$ 
$ # Interpret all upper case:
$ tr a-z A-Z < dearcase.scpt | osascript
Dear Computer, please stop giving me shift!
$
$ # Interpret random case for each letter:
$ while read; do for ((i=0;i<${#REPLY};i++)); do c="${REPLY:i:1}"; if ((RANDOM%2)); then printf "%s" "$(tr a-z A-Z <<< "$c")"; else printf "%s" "$(tr A-Z a-z <<< "$c")"; fi; done; echo; done < dearcase.scpt | osascript
Dear Computer, please stop giving me shift!
$ 

2
とてもかっこいい!1024に到達できることを願っています。コードについて少し説明してください。
カルビンの趣味14年

2
@ Calvin'sHobbies Applescriptは最も読みやすい言語の1つであるはずです-あなたは本当にこれを理解していませんか?私は...少しで説明を追加しようとするでしょう;-)
デジタルトラウマ

2
にインデントと名前のないゴルフバージョンを投稿してくださいend namesed -e 's/^ *//' -e 's/^end.*/end/' dearcase.scpt | wc -cそのまま、それを数えるために使わなければなりません。また、あなたが変更することにより、1037年に1044年から降りることができますcount of acount a、削除logからlog f as textlogコマンドに空の結果がある古いOS X 10.4システムでテストします。osascript結果のみを出力し、イベントログは出力しないため、を削除しない限り出力は得られませんlog
カーニグ14年

3
cを3回ではなくjを2回呼び出すように変更し、必要に応じて呼び出しサイトを更新すると、7文字が節約され、制限を超えます。
パラダイム

3
# Interpret all upper case: $ tr A-Z a-z-引数は逆向きですよね?
イズカタ14年

16

PHP、2 ^ -12

echo ucwords(strtolower('Dear Computer, ')).strtolower('please stop giving me shift!');

PHPはPHPであり、、、の大文字化は重要echoucwordsはありstrtolowerません。呼び出しucwordsとはstrtolower、文字列の場合は、出力を変更しないことを確認してください。

したがって、変更できない((,)).(!);文字は(10文字)のみです。

引用符の各対も有効である50%の確率を有する(''および""有効であるが、'""'はない)、したがって、それぞれ2つの別の力を加えます。


2
@ edc65は、ucwords各単語の最初の文字を大文字に
es1024

1
良いのIDEは、あなただけの今までになってしまいます(あなたのための正しい決算引用符を追加する''""のためにあなたはまだ50%のチャンスがあるのでけれども、だけでなく、閉じ括弧を()自動でなければなりません。
WOUNDEDStevenJones

撮影では、ナビゲーションキー(矢印)を使用できないため、IDEが正しくオートコンプリートした場合でも、同じ文字をもう一度入力する必要があります。そうしないと、次のように新しい(間違った)文字が挿入されます。strtolower("Dear Computer, '"0)...
WOUNDEDStevenJones 14年

1
@WOUNDEDStevenJones IDEの機能に依存することは不正行為と見なされると思います。
インゴバーク14年

1
どの程度<?のプログラムの開始時に?
マイケルMior 14年

5

注:これは実際には3つの回答です。それらがお互いのそのような文字通りの翻訳であるとき、私はそれを複数の答えに分割するポイントを見ませんでした。それらを分割する必要がある場合はお知らせください、私はそれの世話をします。

仕様を読み直した後、これは実際には無効であることがわかりました。各回答は4000文字以上です。しかし、方法が異なるため、とにかくここに残しておきます。

Python 2、2 **-41

print''.join(map(chr,map(len,'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              '.split(' '))))

異なるスタイルのソリューションを提供するだけです。タブ内の各文字のASCII値をエンコードし、スペースで分割します。タブの数は、ASCII値の数です。

これは同じソリューションです

Pyth、2 **-11

j""mCldc"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               "d

別の同一のソリューション-改行で置き換えられたスペースを除く-

Golfscript、2 **-8

'                                                                                                                                                                                                                                                                               









































                                                                                                                                    'n/{,}%+

おそらく、バイナリでのエンコードはGolfScriptで機能します。TABを1、SPACEを0、またはその逆。
ジャスティン14年

3
GolfScriptの答えのほとんどを空白と見なしているのは私だけではありませんか?
ファラプ14年

1
@Pharapそれがトリックです。これは、改行で区切られたタブの集まりです。一番下まで移動して右にスクロールすると、文字列の終わりが表示され、アスキーに変換する魔法が実行されます。
ジャスティン14年


4

空白(645バイト、2 ^ 0確率)

このプログラムはタブ、スペース、改行(すべてシフトの影響を受けない)のみを使用するため、100%の成功率が得られます。

             





















































































  

プログラム実行


1
ただし、これはルールに従って非競合であることに注意してください。
インゴバーク14年

3

CJam、2 -9チャンス、739のバイト

"                         
(lines of space characters)
                                        "N/2fb:c

base64:

IiAJICAgIAkgCQkgICAJICAKICAgCSAJCSAgIAkJCQkgCQoJCQkJIAkgIAkJIAkJICAJCiAJICAg
IAkgCQkgICAgCSAKICAgCSAJCSAgCSAgICAgIAogCQkJCSAJICAJCSAJIAkJCgkJCSAJICAJCSAJ
CSAJCQkKIAkgCQkgIAkgICAgIAkgCQoJIAkJICAJICAgIAkgICAgCgkgIAkJIAkJCQkgIAkJIAkK
CQkgCSAgCQkgCQkJIAkgIAogICAJIAkJICAgCQkJCSAJCiAJICAgIAkgCQkgICAgCSAKIAkJCQkg
CSAgCQkgCQkgIAogICAJIAkJICAJICAgICAgCgkgCQkgIAkgICAgCSAgICAKCSAgCSAgICAJIAkg
CQkgIAogICAJIAkJICAgCQkJCSAJCgkJCQkgCSAgCQkgCQkgIAkKICAgIAkgCQkgICAJCSAJCQog
ICAJIAkJICAgCQkJCSAJCiAgIAkgCQkgIAkgICAgICAKICAgIAkgCQkgICAJCSAJCQoJCSAJICAJ
CSAJCQkgCSAgCgkJCSAJICAJCSAJCSAJCQkKCSAJCSAgCSAgICAJICAgIAogICAJIAkJICAJICAg
ICAgCgkgCSAgCQkgCQkJIAkJCQkKICAJCSAJCQkJIAkgICAgCQogCQkgIAkgICAgCSAgCQkgCiAg
CQkgCQkJCSAJICAgIAkKICAJICAgIAkgCSAJCQkJIAoJIAkgIAkJIAkJCSAJCQkJCiAgIAkgCQkg
IAkgICAgICAKIAkgCQkgIAkgICAgIAkgCQogICAJIAkJICAgCQkJCSAJCiAgIAkgCQkgIAkgICAg
ICAKICAgIAkgCQkgICAJCSAJCQogCQkgCQkJCSAJICAJICAgCiAgCQkgCQkJCSAJICAgIAkKCQkg
CQkJCSAJICAJIAkJIAoJCSAJICAJCSAJCQkgCSAgCgkJIAkJCQkgCSAgCQkgIAkiTi8yZmI6Yw==

オプティマイザーのアイデアとQuincunxの答えに基づきます。


3

Python 2、2 -20のチャンス

print'S'+'top giving me shift!'.lower()

printS+!、および.lower()すべての正しいバージョンでなければなりません。それは18文字です。文字列の2つの引用符も整列する必要があります。これにより、さらに2の2のべき乗になります。

のいずれかで、top giving me shift大文字バージョンに変換される場合、小文字に変換され、適切に動作します。

残念なことに、Pythonのniftyを使用することはできませんcapitalize()。これにはもう1文字必要です。


役立つ場合は、フレーズが長くなりました(ただし、通常は大文字ではありません)。
カルビンの趣味14年

@ Calvin'sHobbiesそれを見た。助けにはなりません。害があります。
ジャスティン14年

2

VisualBasic.net 2 ^ -18

重要な文字:。( "DearC" + "、!"。())

Sub Main
  console.write("Dear C"+"omputer, please stop giving me shift!".tolower())
End Sub

LINQPadでテスト、言語= "VBプログラム"


Visual Studioがあなたのためにケーシングを自動修正すると思います。
ファラプ14年

@Pharapが、ケーシングの外側の引用符が問題ではありません... VSはない正しいA「(」「9」にシフトします
edc65

1
その場合には、より有用なもの:あなたが取得する可能性のある場合を取り除くことができます>代わりに.変更してConsole.Write(string)Write(string)し、スワップ(string).ToLower()のためにLCase(string)
ファラプ14年

1

パイス、2 **-15

+"S"$"top giving me shift!".lower()

Pythののバージョンが見つからないようですlower()ので、Pythonを借ります。スワップすることができない文字があり+"S"$!および.lower()、14文字の合計。の後の引用符$は一致する必要があり、2の累乗が追加されます。


Pythにはないlower()-それは十分に使用されていませんでした。おそらく再び追加する必要があります。
isaacg 14年

1

暴言、2-21

[caps:first][?[caps:word][?[caps:lower]Dear Computer][caps:lower], please stop giving me shift!]

一連のメタパターンとcaps呼び出しにより、適切なフォーマットが強制されます。関数名と引数は大文字と小文字を区別しません。

オンライン版



1

VB.NET、2 ^ -12 2 ^ -11

2 -12

Module All
  Sub Main 
    Console.WriteLine StrConv("Dear Computer, ", vbTuesday) & "please stop giving me shift!".ToLower
  End Sub
End Module

2 -11

Imports System.Console

Module All
  Sub Main 
    Write StrConv("Dear Computer, ", vbTuesday)
    WriteLine "please stop giving me shift!".ToLower
  End Sub
End Module

0

「Enter、Tab、Spaceのみを含む50文字」ルールに到達する前に、自分の答えを考えました。したがって、私のものは無効です。

ここでは、大文字と小文字を区別しないプログラミング言語があることが重要です。あるいは、Realの標準QWERTYキーボード(Caps Lock、他のShift、Backspace、およびNumpad Periodを含む)を使用できる場合、2回の必要な50%のチャンスがあり、失敗ごとに2回の追加キー押下のみになります。実際のキーの押下を示すC#コンソールアプリケーションに対する無効な回答:

HoldShift(C CpsLockOn onsole)

NumPadPeriod

HoldShift(
CpsLockOff W CpsLockOn rite(" 
CpsLockOff D CpsLockOn ear space
CpsLockOff C CpsLockOn omputer
)

, (repeat with Backspace until correct)

HoldShift( please stop giving me shift!"))

; (repeat with Backspace until correct)

必要な50%のチャンスが2つしかない最低76回のプレス


0

Excel、2〜11

=PROPER("Dear Computer, ")&LOWER("please stop giving me shift!")

大文字PROPERと小文字は区別されLOWERません。+自動的に挿入を開始する式を入力する必要があり=ます。だから、唯一(",)&!破ることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.