Python

 Computer >> コンピューター >  >> プログラミング >> Python
  1. Pythonで解く「身長チェッカー」問題:正しい位置にいない生徒の人数を数える方法

    問題の概要 あるグループの生徒たちが、記念撮影のために身長の低い順(非減少順)に並ばなければならないとします。生徒の身長を格納した配列が与えられたとき、正しい位置に立っていない生徒の最小人数を返すのがこの問題の目的です。 例えば、配列が [1, 1, 4, 2, 1, 3] の場合、答えは 3 になります。身長が 4 の生徒、身長が 3 の生徒、そして最後の身長 1 の生徒の合計 3 人が正しい位置に立っていないためです。 解法のアプローチ この問題は非常にシンプルで、次の手順で解くことができます。 答えを格納する変数 answer を 0 で初期化する 元の配列を昇順にソートした配列 x

  2. Pythonで文字列の最大公約数(GCD)を求める方法

    文字列の最大公約数とは 2つの文字列AとBがあると仮定します。AがBを1回以上連結することで作成できる場合、「AはBで割り切れる」と表現できます。例えば、A = abcabc、B = abc の場合、AはBの繰り返しで構成されているため、AはBで割り切れることになります。 この記事では、文字列の最大公約数(GCD)について解説します。これは、両方の文字列を割り切ることができる最も長い文字列を求める問題です。例えば、2つの文字列が ABABAB と ABAB の場合、共通して割り切れる最大の文字列は AB となるため、GCDは AB になります。 解法のアプローチ この問題を解くために、以下の

  3. Pythonでバイグラムの直後に現れる単語を抽出する方法

    問題概要 あるテキストと、2つの単語「first」「second」が与えられたとします。このとき、テキストの中から「first second third」という形式で並んでいる箇所を探します。ここで「second」は「first」の直後に位置し、「third」は「second」の直後に位置します。 該当する箇所が見つかるたびに、その「third」にあたる単語を答えのリストへ追加し、最終的にそのリストを返します。 例えば、テキストが「lina is a good girl she is a good singer」、first =「a」、second =「good」である場合、答えは [girl

  4. Pythonで配列内のゼロを複製するアルゴリズムを解説

    問題の概要固定長の整数型配列が与えられたとき、配列内に出現するゼロ(0)をそれぞれ2つに複製し、それに応じて残りの要素を右側へずらすという問題を考えてみましょう。ただし、元の配列の長さを超える部分には要素を書き込まない点に注意が必要です。つまり、右にずらされたことで範囲外となった要素は単純に切り捨てられます。例えば、配列が [1,0,2,3,0,4,5,0] の場合、処理後は [1,0,0,2,3,0,0,4] となります。解き方のアプローチこの問題は、以下の手順で解くことができます。元の配列 arr を別の配列 arr2 にコピーし、インデックス i と j をそれぞれ 0 で初期化します。

  5. Pythonでキャンディーを一列に並んだ人々に配布するアルゴリズム

    n人の人々が一列に並んでいるとき、次のようなルールに従ってキャンディーを配りたいとします。まず、1番目の人に1個、2番目の人に2個……というように順番に個数を増やしながら配り、最後のn番目の人にはn個渡します。その後、列の先頭に戻り、1番目の人にn+1個、2番目の人にn+2個……と同じ要領で配り、最後のn番目の人には2×n個渡します。このプロセスをキャンディーがなくなるまで繰り返します。途中でキャンディーが足りなくなった場合は、その時点で残っているすべてのキャンディーをその人に渡します(直前の人より必ずしも1個多いとは限りません)。最終的な配布結果を表す配列を返す必要があります。例えば、キャン

  6. PythonでIPアドレスを無害化(Defang)する方法

    IPアドレスの無害化(Defang)とは有効なIPv4アドレスが与えられたとき、その「無害化(Defang)バージョン」を返すことを考えます。無害化されたIPアドレスとは、すべてのピリオド「.」を「[.]」に置き換えたものです。例えば、IPアドレスが「192.168.4.1」であれば、出力は「192[.]168[.]4[.]1」となります。この処理は、セキュリティの分野でよく使われます。記事やログの中に実際のIPアドレスがそのまま記載されると、自動化されたクローラーやマルウェアがそれを本物のアドレスとして認識してしまう恐れがあるためです。「[.]」という表記にすることで、人間には読みやすく、機

  7. Pythonで相対ソート配列を解く方法:arr2の順序に従った並べ替えの実装例

    問題の概要 2つの配列 arr1 と arr2 が与えられます。arr2 の要素はすべて一意(重複なし)であり、arr2 の全要素は arr1 にも含まれています。この条件のもと、arr1 を arr2 と同じ相対的な順序になるように並べ替えます。arr2 に存在しない要素については、arr1 の末尾に昇順で配置します。 例えば、arr1 = [2,3,1,3,2,4,6,7,9,2,19]、arr2 = [2,1,4,3,9,6] の場合、出力は [2,2,2,1,4,3,3,9,6,7,19] になります。 解法のステップ 辞書(マップ)D を作成し、arr1 に含まれる各要素の出現回数

  8. Pythonで等価なドミノペアの数を効率的に数える方法

    ドミノのリストが与えられているとします。各ドミノは2つの数字を持っています。2つのドミノ D[i] = [a, b] と D[j] = [c, d] は、「a = c かつ b = d」または「a = d かつ b = c」が成り立つ場合に等しいとみなされます。つまり、ドミノは反転しても同一視できるということです。ここでの課題は、0 <= i < j < ドミノの総数 を満たし、D[i] が D[j] と等価であるようなペア (i, j) の個数を求めることです。例えば、ドミノのリストが [[1, 2], [2, 1], [3, 4], [6, 5]] の場合、[1, 2]

  9. Pythonで日付から「年の何日目か」を求める方法

    「YYYY-MM-DD」形式の日付が与えられたとき、その日がその年の何日目にあたるかを返すプログラムを考えてみましょう。たとえば、日付が「2019-02-10」であれば、これはその年の41日目に相当します。 解決のための手順 この問題は、以下のステップで解くことができます。 各月の日数を格納した配列Dを用意します。例:[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 日付文字列を年・月・日のリストに変換します。 うるう年の場合は、2月の日数を29日に変更します。 1月から(対象の月 − 1)までの累積日数を合計し、そこに「日」の数を加えて

  10. Pythonで解く素数の並べ替え問題:素数を素数インデックスに配置する順列の数

    この記事では、1からnまでの数字を使った順列のうち、「素数が素数のインデックス位置(1始まり)に配置されている」ものの総数を求める問題を扱います。答えは非常に大きくなる可能性があるため、109 + 7で割った余りを返します。 例えば n = 5 の場合、答えは12通りになります。有効な順列の一例は [1, 2, 5, 4, 3] です。一方、[5, 2, 3, 4, 1] は無効です。これは、素数である5がインデックス1(素数ではない)に置かれているためです。 解法のアプローチ まず、getNum という補助メソッドを定義して n 以下の素数の個数を数えます。その後、素数の個数 x と非素

  11. Rainbow Stream – Linux向け高機能コマンドラインTwitterクライアントの使い方

    Rainbow Streamは、MITライセンスで公開されている、Linuxコマンドライン向けの無料・オープンソースのTwitterクライアントです。リアルタイムのツイートストリーム表示、ツイートの投稿、検索、お気に入り登録などが可能で、Pythonで開発され、Twitter APIとPython Twitter Toolを基盤として構築されています。このアプリケーションをコンソールで実行するには、Pythonおよびpip(バージョン2.7.xまたは3.x)がインストールされている必要があります。 Rainbow Streamの主な特徴 Linuxコマンドライン向けの無料・オープンソースTw

  12. Pythonで配列の各要素の出現回数が一意かどうかを判定する方法

    この記事では、Pythonを使って配列内の各要素の出現回数がすべて一意(ユニーク)であるかどうかを判定する方法を解説します。例えば、配列 [1, 1, 2, 2, 2, 3, 4, 4, 4, 4] の場合、要素「1」は2回、「2」は3回、「3」は1回、「4」は4回出現しており、それぞれの出現回数が異なるため true を返します。逆に、同じ出現回数を持つ要素が複数存在する場合は false を返します。解決のためのアプローチこの問題は、次の手順で解決できます。まず、配列内の各要素の出現回数(頻度)を求めます。次に、頻度マップ内の各キーと値のペアについて以下を確認します。その値(出現回数)がす

  13. Pythonで偶数桁の数字を数える方法

    数値のリストが与えられたとき、桁数が偶数である数字の個数を数える問題を考えてみましょう。 例えば、配列が [12, 345, 2, 6, 7896] の場合を想定します。「12」は2桁、「7896」は4桁なので桁数が偶数です。一方、「345」「2」「6」は桁数が奇数のため対象外となります。したがって、この場合の出力は 2 になります。 解決のアプローチ この問題は、以下の手順でシンプルに解くことができます。 リストを受け取り、各整数を文字列に変換する 変換後の文字列の長さ(=桁数)が偶数であれば、カウントを1つ増やす すべての要素を処理したら、最終的なカウント値を返す 実装例 それでは、

  14. Fish – Linux向けのスマートで使いやすいインタラクティブシェル

    Fish(Friendly Interactive Shell)は、UNIXおよびUNIX系オペレーティングシステム向けのシェルです。数々の便利な改善が施された、独自性と革新性にあふれるコマンドライン環境を提供します。FishはbashやZshなど他のシェルと共存して動作するよう設計されており、多くのシェルがプロセスリソースを節約するために一部の機能をデフォルトで無効化しているのとは対照的に、Fishはすべての機能を最初から有効にし、その性能を最大限に引き出せるようになっています。 Fishの主な特徴 ユーザーフレンドリーなインタラクティブシェル 強力な機能を多数搭載 Webブラウザベース

  15. Ubuntuでコマンドラインチートシート「Cheat」をインストールして活用する方法

    CheatはPythonベースのコマンドラインツールで、システム管理者が便利なチートシートを閲覧・保存できるようにするソフトウェアです。指定したコマンドのプレーンテキスト形式の使用例を表示し、オプションや引数、よくある使い方を素早く思い出す手助けをしてくれます。Cheatはまさに「頻繁に使うけれど、暗記できるほどではないコマンド」のためのツールと言えるでしょう。 Cheatのインストール Cheatをインストールする前に、まずシステムを最新の状態にしておきましょう。以下のコマンドを実行します。 $ sudo apt-get update && sudo apt-get upgr

  16. Linuxターミナルでブロードバンドの回線速度を測定する方法!speedtest-cliの使い方を解説

    Linuxを使っていると、ブラウザやGUIアプリを開かずに、ターミナルだけでインターネット回線(ブロードバンド)の速度を測定したい場面があります。そんなときに便利なのが、speedtest.netの測定サーバーを利用できるコマンドラインツール「speedtest-cli」です。この記事では、speedtest-cliのインストール方法から基本的な使い方、覚えておくと便利なオプションまでを、初心者にもわかりやすく解説します。 前提条件:Python pipのインストール speedtest-cliはPython製のツールのため、インストールにはPythonのパッケージ管理ツール「pip」が必要で

  17. UbuntuにPython 3.4.4をインストールする方法|ソースからビルドする完全手順

    Pythonは、汎用性の高いインタプリタ型・対話型・オブジェクト指向の高水準プログラミング言語です。1985年から1990年にかけてGuido van Rossum(グイド・ヴァンロッサム)によって開発されました。Perlと同様に、PythonのソースコードもGNU General Public License(GPL)の下で公開されています。 この記事では、Ubuntu環境にPython 3.4.4をソースコードからビルドしてインストールする手順を、初心者にもわかりやすく解説します。 1. 必要な前提パッケージのインストール Pythonをソースからビルドするには、まずコンパイラやビルドツー

  18. Pythonを学ぶべき10の理由|初心者からプロまで選ばれる万能言語の魅力

    Pythonは無料で学びやすい言語Pythonは、ダウンロードから利用、コーディングまで完全に無料で使えるプログラミング言語です。コマンドの多くがシンプルな英語で構成されているため、覚えやすく書きやすいのが特徴です。コードの可読性が高く、基礎知識が少しあれば、コードを読むだけでも多くのことを学べます。標準ライブラリが豊富に用意されており、複雑なアプリケーションも簡単に実装できます。Pythonは初心者を意識して設計された言語であり、インデント(空白)と一般的な表現を採用することで、煩わしい変数宣言や読みにくい波括弧の必要性を排除しました。プログラミングの第一歩として最適Pythonは、プログラ

  19. なぜPythonプログラミングを学ぶべきなのか?初心者にも分かる理由と魅力

    Pythonとはどんな言語?Pythonは、高水準かつインタプリタ型・対話型・オブジェクト指向のスクリプト言語です。最大の特徴は「可読性の高さ」を重視して設計されている点にあります。他の多くのプログラミング言語では記号(句読点)を使って構文を表現するところを、Pythonでは英語のキーワードを積極的に採用しており、構文もシンプル。そのため、コードがまるで英文のように読みやすく、初学者でも直感的に理解しやすい言語となっています。学生も現役エンジニアも、Pythonは「必修」Pythonは、優れたソフトウェアエンジニアを目指す学生や社会人にとって、まさに必須(MUST)のスキルです。特にWeb開発

  20. Pythonの誕生と歴史:初心者からプロまで愛されるプログラミング言語の歩み

    Pythonとは?その特徴と魅力Pythonは、高水準・インタプリタ型・対話型・オブジェクト指向という特徴を兼ね備えたスクリプト言語です。英語のキーワードを多用し、記号による複雑な構文が少ないため、他の多くのプログラミング言語と比べて格段に読みやすく、習得しやすい設計となっています。Pythonの主な特徴インタプリタ型言語 − プログラムは実行時にインタプリタによって処理されます。実行前にコンパイルを行う必要がなく、PERLやPHPと似た手軽な開発スタイルを実現しています。対話型言語 − Pythonのプロンプトから直接インタプリタとやり取りしながら、コードを書きながら即座に動作を確認できるた

Total 8994 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:121/450  20-コンピューター/Page Goto:1 115 116 117 118 119 120 121 122 123 124 125 126 127