タグ付けされた質問 「python」

この課題はPython言語に関連しています。回答が特定の言語である必要がある課題は、一般的には推奨されません。

2
このゲームで勝った単語のセットを見つけるための最速のpythonコード
これは、子供向けの一連のアクティビティカードからの単語ゲームです。ルールの下には、/ usr / share / dict / wordsを使用して最適なトリプレットを見つけるためのコードがあります。私はそれが面白い最適化問題だと思い、人々が改善を見つけることができるかどうか疑問に思っています。 ルール 以下の各セットから1つの文字を選択します。 選択した文字(およびその他の文字)を使用して単語を選択します。 単語を採点します。 選択したセットの各文字には、セットに表示されている番号が付けられます(繰り返しが含まれます)。 AEIOU カウント0 他のすべての文字は-2 上記の手順1〜3(手順1で文字を再利用しない)をさらに2回繰り返します。 最終スコアは、3つの単語スコアの合計です。 セット (1点を1点に設定、2点を2点に設定など) LTN RDS GBM CHP FWV YKJ QXZ コード: from itertools import permutations import numpy as np points = {'LTN' : 1, 'RDS' : 2, 'GBM' : 3, 'CHP' : 4, …

15
論理ゲートを手動で
基本的な論理ゲートをシミュレートするプログラムを作成します。 入力:スペースなどで区切られた、2つの1桁の2進数が続く、すべて大文字の単語OR 1 0。門OR、AND、NOR、NAND、XOR、およびXNOR必要とされています。 出力:入力された論理ゲートの出力には、1または0の2つの数値が与えられます。 例: AND 1 0なります0 XOR 0 1なり1 OR 1 1ます1 NAND 1 1なります0 これはcodegolfなので、最短のコードが優先されます。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

30
プライムパワーからプライムを回復する
定義:素数はp nの形式で表現できる自然数です。pは素数で、nは自然数です。 タスク:プライムパワーp n > 1の場合、プライムpを返します。 テストケース: input output 9 3 16 2 343 7 2687 2687 59049 3 得点:これはcode-golfです。バイト単位の最短回答が優先されます。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

1
Pythonのリストの最も一般的な要素
これはPythonでのゴルフのヒントの質問です。これはmainのトピックです。 Pythonのリストの最も一般的な要素をすべて、可能な限り最短で取得するための最短の方法を探しています。リストがと呼ばれる変数にあると仮定して、私が試したものは次のとおりですl: from statistics import* mode(l) 複数のモードがある場合、これはエラーをスローします。 max(l,key=l.count) これは1つのアイテムのみを返します。最大数のすべての要素を取得する必要があります。 from collections import* Counter(l).most_common() これは、(element, count)カウントでソートされたのタプルのリストを返します。これから、対応するカウントが最初のものと等しいすべての要素を引き出すことができましたが、これよりもはるかに良いゴルフをする方法は見当たりません: from collections import* c=Counter(l).most_common() [s for s,i in c if i==c[0][1]] もっと短い方法があると確信しています! また、変数の割り当てやの複数の使用をせずに実行できる場合lは、コードの残りをラムダ式として保持し、より多くのバイトを節約できます。 編集:@Urielの提案に従って、次のことができます。 {s for s in l if l.count(s)==l.count(max(l,key=l.count))} そしてlist.count、数バイトのエイリアスを作成できます。 c=l.count;{s for s in l if c(s)==c(max(l,key=c))} @Urielは、次のようにしてさらに2バイトを取得できることを指摘しましたmap。 c=l.count;{s for s in l …
13 code-golf  tips  python 

7
ポイントで変異した箸KoTH
基本的なルール(私のルールとは異なります) 物語 4579年、人間はそれぞれ1001本の指を持つ2つの手になりました。箸はポイントに基づいています。そして、@ Dennisは@Martinよりも多くの担当者がいます...手描きの赤い丸は今では投票されていません... Jon SkeetはすべてのSEサイトで2兆回の担当者を叩いています...ええ、怖いです 箸は解決されたハンドゲームです。これを回避するために、変異させて作成しました。指の量を増やしました。 ゲームのルール これが演奏される方法 誰もが2つの手で始まります。各手には1001本の指があります。すべての手は上の1(1)指で起動し、それぞれの手。ターン中に、他のプレイヤーの手を「ヒット」できます。ヒットするには、ヒットするハンドを1つ、ヒットするハンドを1つ選択します。ヒットしたハンドには、最初は指の数があり、ヒットした手に持っていた指の数があります。 EX P1: 1,1 P2: 1,1。P1[0]ヒットP2[1]。今指はP1:1,1 P2:1,2です。今P2[1]ヒットp1[0]。指はP1:3,1P2になりました1,2。 片方の手が1001本以上の指に達すると、その手は外に出ます。その後、(自分のターンで)ハンドを手にしたプレイヤーは「スプリット」できます。分割とは、中にある手を取り、指の量を半分に切り上げ(切り上げ)、それらの指をもう一方の手に渡して戻すことです。 EX P1:1000,2P2 7,7。P2[0]ヒットP1[0]。スコアはP1:0,2P2 1,1です。P1[1]彼のターンでスプリットし、スコアはP1:1,1とP2 7,7です。 1人のプレイヤーが両方の手を出したらゲームは終了します。ポイントは、勝者が持っている指の量によって得点されます。ポイントが多いほど良い。敗者はポイントを獲得しません。 使用される他のルールがありますが、これらはここで使用されるものです。 みんながみんなで遊ぶ(ラウンドロビン) 終盤 あなたが勝つすべてのラウンドからあなたのポイントを合計します。次に、全員のポイントを平均します。合計を平均ポイントで割り、最終スコアを取得します。ほとんどのポイントが勝ちます。 実際のルール 標準抜け穴 ゲームを解決しようとしないでください。私は実際にそれを実行できる必要があります:P ボットが高速で実行できることを確認します。ラウンドの長さを判断するにはこれには時間がかかります プログラムに必要なすべてのライブラリは、デフォルトのpythonライブラリに含まれている必要があります。インポートする必要があるものもリストします。輸入はちょうど(数学のために私は:基本的なインポートされますimport math) 回答はPython 3.xで動作する必要があります ハンドラ ボットは、play機能を持つ独自のPython 3ファイルになります。 playそれぞれ2つの数字の2つのリストが渡されます。この数字は、各手に何本の指が上がっているかを示しています。最初のリストは自分の手です。 他のプレイヤーのハンドをヒットすることを選択した場合、2ビットのリストを返します。最初のビットは、ヒットする0ために使用しているハンドのインデックス(最初、1最後)であり、2番目のビットは、相手にヒットしているハンドのインデックスです。 分割することを選択した場合、他の真の値を返します。 多田! コントローラはここにあります。各ボットを独自のファイルに保存し、各ボットのファイル名を(なしで.py)にリストしbotnamesます。 最後のメモ: あなたと他のボットが最初に交代します。ゲームが100,000(10万)ラウンドで終了しない場合、ゲームは終了し、どちらのボットも勝ちません。 コントローラーは、永久に移動することから保護されていませんが、不要なオーバーヘッドは強く眉をひそめます。

4
算術式を使用して特定の大きな整数を表現するための戦略
特定の数を念頭に置いていますが、それは私がしている挑戦の一部です。 以下は、同じ数字ですがシャッフルされた数字です。 5713167915926167134578399473447223554460066674314639815391281352328315313091488448321843 8892917486601064146636679920143691047671721184150386045081532202458651561779976236919751 5521854951599379666116678853267398393892536121049731949764192014193648608210652358947001 6332620900065461061195026191178967128001712341637591690941978871368243245270800684616029 6679555942849366434586090627998161441134473428845367022486230724219981658438108844675033 4461550796750244527407413996606134735852639191026103378962082622204359677030054592798927 4145951979523473408718011778751084514127053772614511042703365596651912104541233491744530 87457854312602843967491787086250478422477028164189 数字は666桁(10進数)です。Pythonを使用しているため、整数(または技術的に長い)は自動的にbignumです。 使用する255文字があり、同じ番号を記述する必要があります。説明は、元の数値を生成するためにeval()を実行することを意図しています。 どの戦略を検討すべきですか?

1
Pythonで項目ごとに文字列のリストを連結する
これはpythonでのゴルフのヒントの質問です。 文字列のリストが2つあり、各リストの対応するエントリを連結するとします。例えば、a=list("abcd")とb=list("1234")を計算し["a1","b2","c3","d4"]ます。 これは、一般に操作がリストにメンバーごとに適用される配列ベースのプログラミング言語では簡単です。たとえば、私のゴルフ言語Pipのコードは単純a.bです。しかし、Pythonではそれほど簡単ではありません。 Pythonicの方法は、おそらくzipリスト内包表記(25文字)を使用することです。 [x+y for x,y in zip(a,b)] 別の方法はmap、ラムダ関数を使用する方法です(23): map(lambda x,y:x+y,a,b) 以下は、私が思いついた最短のものです(21): map("".join,zip(a,b)) もっと短い方法はありますか? リストの長さは同じで、必要なのは何らかの反復可能なものだけであると仮定します(したがって、mapPython 3ではオブジェクトは問題ありません)。
13 code-golf  tips  python 

3
自動メタコードゴルフ
あなたはすべてのcodegolfの課題にうんざりしています。そのため、Pythonコードを自動的にゴルフするプログラムを作成することにします。3つのテストケースがあります。 print quickSort([0,7,3,-1,8,10,57,2]) def quickSort(arr): less = [] pivotList = [] more = [] if len(arr) <= 1: return arr else: pivot = arr[0] for i in arr: if i < pivot: less.append(i) elif i > pivot: more.append(i) else: pivotList.append(i) less = quickSort(less) more = quickSort(more) return less + pivotList …
13 python  metagolf 

4
Pythonの128バイト以内で可能な限り低いパイリントスコアを取得する
pylintには、コードに与えるスコアの下限はありません。次のメトリックを使用してコードをスコアリングします。最大スコアは10です。 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) python 3.6を使用して、次のようなプログラムを作成してみてください。 コマンドライン(つまりpython script.py)から実行すると「Hello World」を出力し、他の出力は出力しません。 から可能な最低スコアを取得しpylintます(デフォルト設定)(つまりpylint script.py) 厳密に128バイト以下のサイズです。

2
このpythonコードを短縮するにはどうすればよいですか?
ここに短縮したいコードがあります。 n=input() while n: s=raw_input() x,r,g,b=(int(x) for x in s.split()) a=x/r%2 c=x/g%2 d=x/b%2 r=((a*10+c)*10)+d if r==0:e="black" elif r==100:e="red" elif r==1:e="blue" elif r==10:e="green" elif r==101:e="magenta" elif r==11:e="cyan" elif r==110:e="yellow" else:e="white" print(e) n-=1 入力:3 4643 5913 4827 9752 5583 5357 5120 9400 2025 5475 4339 8392 出力: black yellow black
12 code-golf  tips  python 

19
KOTH-ロードされたRPS
コンテストが恒久的に開催されました-2017年8月10日更新 2017年6月5日に勝者を宣言しましたが(勝者はベストアンサーとして保持されます)、新しいボットを獲得し、結果を更新します。 6月5日の結果 おめでとうuser1502040 同点がないため、勝った試合の割合のみを表示します。 Statistician2-95.7% Fitter-89.1% Nash-83.9% Weigher-79.9% ExpectedBayes-76.4% AntiRepeater-72.1% Yggdrasil-65.0% AntiGreedy-64.1% Reactor-59.9% NotHungry-57.3% NashBot-55.1% Blodsocer-48.6% BestOfBothWorlds-48.4% GoodWinning-43.9% Rockstar-40.5% ArtsyChild-40.4% Assassin-38.1 % WeightedRandom-37.7% Ensemble-37.4% UseOpponents-36.4% GreedyPsychologist-36.3% TheMessenger-33.9% Copycat-31.4% Greedy-28.3% SomewhatHungry-27.6% AntiAntiGreedy-21.0% Cycler-20.3% Swap-19.8% RandomBot-16.2% 各ペアの結果のグリッドでGoogleスプレッドシートを作成しました:https : //docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit?usp=sharing ペトリのジレンマのおかげで、このキングオブザヒルに対応できるようになりました。 ゲーム ゲームは、ひねりを加えたシンプルな「じゃんけん」です。試合中に勝利が増えるごとにポイントが獲得されます(R、P、またはSがロードされます)。 紙がロックを獲得 はさみが紙に勝つ ロックがハサミで優勝 勝者は、自分のプレーの負荷と同数のポイントを獲得します。 敗者はプレイの負荷を1増やします。 同点の場合、各プレイヤーはプレイの負荷を0.5ずつ増やします。 100回プレイした後、より多くのポイントを持つ方が勝者です。 例:P1には負荷[10,11,12](じゃんけん)とP2 [7,8,9]があります。P1がRをプレイし、P2がPをプレイします。P2が勝ち、8ポイントを獲得します。P1負荷は[11,11,12]になり、P2負荷は同じままです。 …

5
Pythonスクリプトにコメントを追加して、バイリンガルPython / C ++の「プログラム」にします
次のPython 3スクリプトを考えます: def greet(): print("Hello, world!") greet() このテキストファイルにいくつかの行を追加して、Pythonプログラムとして実行できるだけでなく、同じ出力を生成するC ++プログラムとしてコンパイルおよび実行できるようにします Hello、world!(最後の改行を含む): $ python3 bilingual.py.cpp Hello, world! $ g++ bilingual.py.cpp && ./a.out Hello, world! ソリューションは、Pythonスクリプトを含むプログラム全体の非空白文字の数によってスコア付けされます。 sed 's/\s//g' bilingual.py.cpp|wc -c

1
信頼できないローカルユーザーからMac Proをリモートで保護するパニックスクリプトを作成する[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 3年前に閉店しました。 状況 ワークステーションで「Shady Sam」管理者アクセスを許可し、一時的なルートログインパスワードを与えることで、Mac Proで重要な管理タスクを実行するとします。(彼らが信頼できると仮定してください。おそらく私の会社のシステム管理者です。) 遠隔地(自宅など)から、MacBook Proラップトップを使用してSamの活動を観察し、リモートデスクトップ(VNC)を介して自分でタスクを実行する方法を学びます。 警告なしに、Shady Samはなんともひどいことをします!おそらく、彼が私のハードドライブからデータを削除しようとしている、または制限されたフォルダーなどを覗き見しているのを目にします。 マウスとキーボードを共有しているため、リモートデスクトップ内からアクションを確実に実行できませんでした(接続を閉じることができました)。スクリプトを作成して、リモートで実行する必要があります。 チャレンジ 最高のスクリプト(例えば何panicScript.shかpanicScript.py)私は彼の卑劣な行為を行ってからシェイディーサムを停止するためにリモートで実行することができますし、それを再度試みるから彼を防ぎますか? 次の方法で実行することを想定しています。 scp panicScript.sh remoteMachine:~/panicScript.sh ssh remoteMachine . ~/panicScript.sh 可能な機能: 他のアイデアは特に奨励されています! remoteMachine上の任意/すべてのアカウントのパスワードを変更する キーボードまたはマウスを無効にします モニターを無効にします マシンを再起動します 仮定 シェイディサムはどのような方法でのMac Proが損傷したり、コンポーネントのいずれかを削除する(例えば、物理的にハードドライブまたは有線ネットワーク接続を削除する)が、彼はしませんでしょう再ログインしようとし、彼の卑劣な行為、可能な限り迅速に続けています。サムは、(そうでなければ)コンピューターへの無制限の物理的アクセス権とルートログインパスワードを持っています。 Mac Proには、モニター、キーボード、マウス、外付けハードドライブ、およびインターネット用のイーサネット接続があると仮定します。共有エリアのネットワークプリンターに印刷できると仮定します。楽しみのために、私の同僚と同じ複数の同僚のワークステーションに標準ユーザーアカウントがあるとします(したがって、を介してマシンに接続できますssh)。 同僚が立ち上がって互いに会話できるように、12個の屋外のキュービクルが集まっていると仮定します。私の同僚は、しかし、一般的に意志はない、彼は過去にそれらのいくつかを支援してきましたし、自分のコンピュータに卑劣なことをしなかったので、彼らは私のコンピュータで彼を見たらシェイディサムは卑劣な何かをやっていると思われます。 制約 パニックスクリプトは、最初は自宅のラップトップにあります。あなたのことができscp、それは私のマシンへとそこにそれを実行、または自宅で私のラップトップから直接実行します。(応答で指定してください!) スクリプトによって実行されるすべてのアクションは、リモートロケーションから後でアクセスできるように、リモートロケーションから損傷を与えたり、元に戻せないものでなければならず、Mac Proの標準機能/コマンドでなければなりません。 スクリプトは、マシンに標準装備されている限り、他のスクリプト/プログラムを呼び出すことができます。コマンドラインスクリプトツール(例awk)は、コマンドがメインスクリプト(例history | awk '{print $2}')に含まれている限り問題ありません。これにより、使用できるスクリプト言語が明らかに制限されます。 作成したカスタムスクリプトまたはプログラム(例:)を呼び出すことは. ~/myOtherScriptOfKungFoo.sh、スクリプト内から生成し、生成されたスクリプトが32文字未満でない限り、問題ありません。 echo -e "#"'!'"/bin/bash\necho \"Hello, …

1
適切にコードゴルフをしていますか?
私はコードゴルフをきちんとやっているのか興味があります。Pythonで小さなハッシュプログラムを単一のステートメントにするという課題を自分自身に設定しました。私は最初に始めました: from itertools import permutations from string import ascii_lowercase from random import sample def test(): chars = sample(ascii_lowercase, 9) sums = list(map(h, permutations(chars))) if len(set(sums)) == len(sums): print("unique results for permutations of given string") else: print("duplicate entries present in test results") def h(s): r = 0 for i in range(len(s)): …
12 code-golf  tips  python 

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

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