タグ付けされた質問 「language-agnostic」

このタグは、特定のプログラミング言語に依存しないプログラミングの質問に使用します。

26
コードゴルフ-π日
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 挑戦 SOのコードゴルフのガイドライン 文字Rを使用して半径の円の表現を表示するための文字数ごとの最短コード*、その後に近似のπ。 入力は単一の数値ですR。 ほとんどのコンピュータはほぼ2:1の比率であるように見えるため、y奇数の行のみを出力する必要があります。これは、R奇妙なときにR-1行を印刷する必要があることを意味します。R=13を明確にするための新しいテストケースがあります。 例えば。 Input 5 Output Correct Incorrect 3 ******* 4 ******* 1 ********* 2 ********* -1 ********* 0 *********** -3 ******* -2 ********* 2.56 -4 ******* 3.44 編集:の奇数の値によって引き起こされる広範な混乱のため、R以下に示す4つのテストケースに合格したソリューションはすべて受け入れられます。 πの近似値は、数の二倍割ることによって与えられている*ことにより、文字をR²。 近似は、少なくとも6桁の有効数字でなければなりません。 先頭または末尾のゼロはそう例えば任意の、許可され3、3.000000、003の入力のために受理される2と4。 コードカウントには入力/出力(つまり、完全なプログラム)が含まれます。 テストケース Input 2 Output *** *** 3.0 Input 4 Output ***** ******* ******* …

30
型だけが大文字と小文字で異なる変数名を使用するのは不道徳ですか?
たとえば、次のコードを見てください。 var person = new Person(); またはあなたのためにPythonistas: person = Person() 私は常にこれがいかに悪いかと聞かれますが、これらの2行のコードの不道徳の例をまだ見ていません。私にとって、人は人であり、それに別の名前を付けようとすることは時間の無駄です。構文強調表示の前の数日間は、これは大きな問題だったと思います。しかし最近では、型名と変数名を区別するのは非常に簡単です。ここで、SOの違いを確認するのも簡単です。 それとも私が見逃しているものはありますか?もしそうなら、問題を引き起こすコードの例を提供できると助かります。

4
JVMがまだテールコール最適化をサポートしていないのはなぜですか?
does-the-jvm-prevent-tail-call-optimizationsの 2年後、プロトタイプの 実装があり、MLVMはしばらくの間、この機能を「proto 80%」としてリストしています。 JVMで言及されているように、テールコールのサポートにSun / Oracleの側から積極的な関心はありませんか、それとも、テールコールが「すべての機能優先度リストで2番目に来ると運命づけられている [...]」だけです。言語サミット? 誰かがMLVMビルドをテストし、それがどれほどうまく機能するかについての印象を(もしあれば)共有できたら、私は本当に興味があります。 更新: Avianのような一部のVM は、問題なく適切な末尾呼び出しをサポートしています。

30
プログラマーパズル:ゲーム全体でチェス盤の状態をエンコードする
厳密には質問ではなく、パズルのようなものです... 長年にわたり、私は新入社員の技術面接にいくつか携わってきました。「Xテクノロジーを知っていますか」という標準的な質問をする以外に、私は彼らが問題にどのように取り組むかについての感触を得ることも試みました。通常、面接の前日にメールで質問を送信し、翌日までに解決策が見つかると期待します。 多くの場合、結果は非常に興味深いものになります-間違っていますが、興味深いものです。その人が特定のアプローチをとった理由を説明できれば、その人は私の推奨を得るでしょう。 だから私はスタックオーバーフローの聴衆に向けて私の質問の1つを投げると思いました。 質問:チェスゲーム(またはそのサブセット)の状態をエンコードするために考えられる最もスペース効率の良い方法は何ですか?つまり、駒が合法的に配置されたチェス盤が与えられた場合、この初期状態と、ゲーム内のプレーヤーが取ったその後のすべての合法的な動きの両方をエンコードします。 答えに必要なコードはなく、使用するアルゴリズムの説明のみです。 編集:ポスターの1つが指摘したように、私は移動の時間間隔を考慮しませんでした。オプションの追加としてそれについても説明してください:) EDIT2:補足説明のために...エンコーダー/デコーダーはルールに対応していることを忘れないでください。実際に保存する必要があるのはプレーヤーの選択だけです。それ以外は、エンコーダー/デコーダーが認識していると見なすことができます。 EDIT3:ここで勝者を選ぶのは難しいでしょう:)たくさんの素晴らしい答え!

16
学校の時間割を作成するためのアルゴリズム
学校の時間割を作成するアルゴリズムの既知の解決策があるかどうか疑問に思っていました。基本的に、それは、与えられたクラス-サブジェクト-ティーチャーの関連付けに対して(教師とクラスの両方で)「時間分散」を最適化することです。入力で互いに関連付けられた一連のクラス、レッスンの主題、教師があり、時刻表は午前8時から午後4時の間に収まると想定できます。 そのための正確なアルゴリズムはおそらくないだろうと思いますが、誰かがそれを開発するための良い近似やヒントを知っているかもしれません。

14
「アレンジ-アサート-アクト-アサート」にする必要がありますか?
Arrange-Act-Assertの古典的なテストパターンに関しては、Actの前にカウンターアサーションを追加することがよくあります。このようにして、通過するアサーションがアクションの結果として実際に通過していることがわかります。 これは、red-green-refactorの赤に似ていると思います。テスト中に赤いバーが表示された場合にのみ、緑色のバーは、違いをもたらすコードを記述したことを意味します。合格したテストを作成すると、どのコードでもそれを満たします。同様に、Arrange-Assert-Act-Assertに関しても、最初のアサーションが失敗した場合、どのActも最終的なAssertを通過したことになるので、実際にはActについて何も検証していません。 テストはこのパターンに従っていますか?なぜですか、なぜそうではありませんか? 明確化の更新:最初のアサーションは基本的に最終アサーションの反対です。それはアレンジが機能したという主張ではありません。Actがまだ機能していないという主張です。

17
2つの画像間の類似性を測定するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する 1つのアプリケーション(Webページの場合もある)のスクリーンショットを以前に撮ったスクリーンショットと比較して、アプリケーションが正しく表示されているかどうかを確認します。アスペクトが少し異なる可能性があるため、完全一致の比較は必要ありません(Webアプリの場合、ブラウザーによっては、一部の要素が少し異なる場所にある可能性があります)。スクリーンショットがどの程度類似しているかの目安になります。 すでにそれを行うライブラリ/ツールはありますか?どのように実装しますか?


8
トランポリン機能とは?
職場での最近の議論の中で、誰かがトランポリン機能について言及しました。 ウィキペディアで説明を読みました。機能の概要を説明するだけで十分ですが、もう少し具体的なことをお願いします。 トランポリンを説明する簡単なコードスニペットはありますか?

11
プログラミング競技者がC ++とJavaを使用するのはなぜですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して質問を更新し、事実と引用で回答できるようにします。 5年前に閉鎖。 この質問を改善する 今年のGoogle Code Jam コンテストに出場した後、C / C ++とJavaを使用した驚くほど多くの[成功した]参加者に気づかざるを得ませんでした。コンテスト全体で使用される言語の分布はここで見ることができます。 数年間C / C ++でプログラミングした後、私は最近、Pythonの可読性/わかりやすさの性質が好きになりました。最近では、OCaml、Schemeなどの関数型言語や、Prologなどの論理言語も学びました。これらの言語には確かにメリットがあり、私の意見では、特定の状況ではC ++やJavaよりも簡単に適用できます。たとえば、Schemeのcall / ccの使用は、バックトラッキング(いくつかの問題に答えるために必要なツール)を簡素化し、Prologのロジック仕様は、ブルートフォースの性質により非効率的ですが、困難な特定の問題を大幅に簡略化(そして自動的に解決)することができます脳を包み込む。 競技参加者は、チャレンジに最も適したツールを使用する必要があることは明らかです。x86アセンブリでさえチューリング完全です-それはそれで問題を解決することを正当化しません。この場合、Scheme / Lisp、Prolog、Pythonなどのあまり一般的でない言語を使用する競技者は、C / C ++およびJavaを使用する競技者よりも成功率が大幅に低いのはなぜですか?言い換えれば、成功した競技者は、主流ではないかもしれませんが、間違いなく仕事に適したツールである言語を使用しないのですか? 私の質問にはいくつかの動機があります。最も重要なこととして、私はより良いプログラマーになりたいと思っています-実用面と競争面の両方で。関数型プログラミングや論理プログラミングなどの美しいパラダイムを紹介した後、C / C ++やJavaを支持して多くの人々がそれらを破棄するのを見るのは残念です。プログラミングの競争でLisp / Scheme / Prologプログラマーとして成功することができないのではないかと心配して、上記のパラダイムに対する私の賞賛に疑問を投げかけることさえあります。


9
ループの展開がまだ役立つ場合はいつですか?
ループのアンロールによって、パフォーマンスが非常に重要なコード(モンテカルロシミュレーション内で何百万回も呼び出されるクイックソートアルゴリズム)を最適化しようとしています。これは私がスピードアップしようとしている内側のループです: // Search for elements to swap. while(myArray[++index1] < pivot) {} while(pivot < myArray[--index2]) {} 私は次のようなものに展開してみました: while(true) { if(myArray[++index1] < pivot) break; if(myArray[++index1] < pivot) break; // More unrolling } while(true) { if(pivot < myArray[--index2]) break; if(pivot < myArray[--index2]) break; // More unrolling } これはまったく違いがなかったので、より読みやすい形式に戻しました。ループのアンロールを試みたときも、同様の経験をしました。最新のハードウェアでの分岐予測子の品質を考えた場合、ループの展開が依然として最適な有用な最適化となるのはいつですか?

28
簡単なデッドロックの例
初心者にスレッドデッドロックについて説明したいと思います。私は過去に多くのデッドロックの例を見てきました。コードを使用したり、イラストを使用したりします(有名な4台の車など)。The Dining Philosophersのような、簡単に行き詰まりがちな古典的な問題もありますが、本当の初心者には完全に理解するには複雑すぎる場合があります。 デッドロックとは何かを説明する最も簡単なコード例を探しています。例は次のようにする必要があります。 ある意味のある「実際の」プログラミングシナリオに関連する 非常に短く、シンプルでわかりやすい 何がお勧めですか?

6
重複する長方形を間隔を空けるアルゴリズム?
この問題は実際にはロールオーバーを扱います。以下のように一般化します。 2Dビューがあり、画面の領域内に多数の長方形があります。それらのボックスが互いに重ならないように広げて、最小限の移動でのみ調整する方法を教えてください。 長方形の位置は動的であり、ユーザーの入力に依存するため、長方形の位置はどこでもかまいません。 添付画像は問題と望ましい解決策を示しています 実際の問題は、実際にはロールオーバーを扱います。 コメントの質問に対する回答 長方形のサイズは固定されておらず、ロールオーバー内のテキストの長さに依存します 画面サイズについては、今のところ長方形の大きさは画面サイズで十分だと思った方がいいと思います。長方形が多すぎてアルゴが解決策を生成しない場合は、コンテンツを微調整する必要があります。 「最小限に移動」するための要件は、絶対的なエンジニアリング要件よりも無感覚のためのものです。2つの長方形の間隔を広げることで2つの長方形を離すこともできますが、GUIの一部としては見栄えがよくありません。アイデアは、ロールオーバー/長方形をそのソースに近づけることです(それを黒い線でソースに接続します)。したがって、「xの1つだけを移動」または「xの半分を両方移動」のどちらでも問題ありません。

24
例外コードとリターンコードのどちらが好きですか。また、その理由は何ですか。
私の質問は、ほとんどの開発者がエラー処理、例外、またはエラーリターンコードに対して何を好むかということです。言語(または言語族)固有であり、なぜ一方を他方よりも好むのかを教えてください。 私は好奇心からこれを求めています。個人的には、エラーリターンコードの方が爆発性が低く、必要がない場合にユーザーコードに例外パフォーマンスペナルティを支払うように強制しないため、私はエラーリターンコードを好みます。 更新:すべての回答に感謝します!私は例外を除いてコードフローの予測不可能性が嫌いですが、言わなければなりません。リターンコード(およびその兄のハンドル)に関する答えは、コードに多くのノイズを追加します。

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