Nクイーン問題(65) N25を解決!事実上の日本一に
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! キャリーチェー…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! 対象解除法につ…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! ミラー ミラー…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! ビットマップ …
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! ビットマップ …
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! 配置フラグ N…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! バックトラック…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! あらためて 実…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! マルチプロセス…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! マルチスレッド…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! シングルスレッ…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! クラス これま…
VisibleDeprecationWarningが出るのですが? numpyを使っている際に「配列の行と列がイカレています」ということです…
2次元配列を初期化したいのですが? 一次元配列の初期化 list1 = [1, 2, 3] print(list1) # [1, 2, 3]…
Pythonには「変数の型」はあるのですか? あります。 色々なプログラミング言語を扱っていると、変数の型を宣言する必要がある言語、ない言語…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! ステップNの実…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのソース置き場 BashもJavaもPythonも! キャリーチェー…
配列(リスト)を初期化したいのですが? ここでは配列(リスト)を初期化する方法をまとめる。 リスト(配列)を初期化するには、幾つかの方法があ…
配列(リスト)をコピーしたいのですが? できます。 が、しかしコピーには2種類あります。 コピー先 = コピー元 こういった形でコピーしたい…
if文で条件を否定できませんか? できます。 例えばBashの場合以下のように条件式を否定することができます。 if (( ! 条件式 ))…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 対象解除法について まず、Nが小さな盤面で考えていきます。 以下、順に見て理解を深め…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから ミラー ミラー(鏡像)を用いてどのように改善できるのか N5=10、N8=92といっ…
Pythonで三項演算子を使いたいのですが? 使えます。 が、C言語などのような 真の場合 ? 条件式 : 負の場合 という形式はできません…
割り算の値を切り捨てで扱いたいのですが? 切り捨て除算といいます。 除算の商の小数でもなく、余りでもなく、整数部分がほしいときはどうすればい…
文字列を数値を結合して出力したいのですが? PythonはBashのように「なんでもあり」という言語ではありません。 これはオッケーです。 …
【参考リンク】Nクイーン問題 過去記事一覧はこちらから ビットマップ N×NのチェスボードのN個のクイーンの配置を、bitwise(ビット)…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 第2章 エイトクイーン 配置フラグ 国内で最もきちんと説明していると(僕が勝手に)思…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから バックトラック 前回の「ブルートフォース(力まかせ探索)」では、N個のクイーン配置が…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 前回までのあらすじ 前回の記事では、エイトクイーンの3つのルール 1.縦に一つだけの…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから Nクイーン問題 Python版について Nクイーン問題とは、NxNの盤面にチェスのク…
グローバル変数をローカル関数内で使いたいのですが? Pythonでは、グローバルで宣言された変数を「ローカル関数」で使う場合、「この変数はグ…
forをC言語のように記述したいのですが? できます。 まず、その前にpythonでは一般的に以下のように書きます。 for i in ra…
if文の中で改行したいのですが? 長い・・・・。 if 1 == 1 and 2 == 2 and 3 == 3 and 4 == 4: p…
配列を初期化したいのですが? 配列を0(ゼロ)で埋めて初期化します。 MAX=5 board=[0 for i in range(MAX)]…
辞書を使いたいのですが? 辞書の作り方1. # Using curly braces dict_value = {'Name'…
文字列の比較をしたいのですが? 比較方法はいくつかあります。 以下の方法は「数値」の比較となります。 < (less than) &g…
ファイルを上書きするにはどうすればよいですか? 読み書きしたいファイルを用意します。 Python Guide and Java Guide…
ファイル内の文字列を検索したいのですが? 方法1.fileを使う 読み込んで検索したい対象ファイルは以下のとおりです。 Welcome to…
リストの要素を削除したいのですが? remove()を使って要素を削除する #!/usr/local/env python3 myList …
sort()とsorted()の違いがわかりません sort()は元のリスト自体を書き換えます l = [3, 1, 4, 5, 2] l.…
next()関数はどんなときに使うのですか? リストなどの複数の要素を持ったデータ型といった「イテレータ」の要素を順番に取り出すことができま…
compile関数ってどんなときに使うのですか? まず、pythonはインタープリタ言語です。 インタープリタ言語はソースコードを1行ずつ実…
特殊文字を削除したいのですが 方法1.string.replace()で特殊文字を削除する #!/usr/local/env python3…
部分文字列を削除したいのですが? 方法1.repralce()を使う #!/usr/local/env python3 my_str = &…
ファイルを読み込みたいのですが? 以下のファイルを読み込みたいと思います。 language python ruby java swift …
文字列から空白スペースを除去したいのですが? 方法1.replace()を使う string_value ="Hello and W…
リストを簡単に出力したいのですが? 方法1.forを使う list_value = ["Joseph", "Anna…
__str__と__repr__ってなんですか? _ はアンダースコアです。 アンダースコアが2つ並ぶと「ダブルアンダースコア」となります。…
回文かどうかを調べたいのですが? 回文とは、「上から読んでも下から読んでも同じ」文、または語句のことです。 ここでは簡単に「madam」や「…
リストの-1ってなんですか? リストの-1は最後の要素を示します。 指定されたリストの最初の要素のインデックス/位置は「0」、次の要素のイン…
リストの数を要素を数えたいのですが、 方法1.set()で数える names = ['Joseph', 'Anna&…
switchの構文がわかりません pythonにはswitch構文はありません。 Python3.10で新しく導入されるmatch/case…
ASCII判定したいのですが? 構文 string.isascii () 事例 mystr="Python" print(&…
文字列を置換したいのですが? 方法1.replace()を使う #!/usr/local/env python3 def Python_Re…
複数行の代入はできますか? 方法1.三重引用符'''で囲む。 def Python_Multiline_String(): multilin…
辞書内包表記ってなんですか? 要素を順番に”仮変数”に取得し、”条件”に一致するものを使って{キー: 値}を持つ辞書を作るということです。 …
単一の文字列を文字列のリストに結合するにはどうすればよいですか? 方法 1: Python の「eval()」メソッドを使用して単一の文字列…
文字列内の最後の出現箇所を検索するにはどうすればよいですか? Python 文字列内で最後に出現した文字のインデックスを取得する方法を説明し…
文字列を追加するにはどうすればよいですか 方法1 + 演算子を使用して Python 文字列を追加する #!/usr/local/env p…
リストが空かどうかを確認するにはどうすればよいですか? 方法 1: Python で「not」演算子を使用して入力リストが空かどうかを確認す…
pthread並列処理完成 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
pthreadの実装 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
Local構造体へ統合 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
並列処理前準備編2 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
並列処理前準備 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
&Bをわたしていた箇所を &lに統一 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
&Bをわたしていた箇所を &lに統一 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
&Bをわたしていた箇所を &lに統一 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
carryChain_symmetry()に n,e,s,w,Bをわたしていたが、Local l を渡すようにする 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
Local構造体 lを作成 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
pthread 処理を行う関数を抜き出す準備 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
グローバル変数を廃止しglobal構造体に移動 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
sizeをglobalへ移動。あわせて、sizeは関数間のパラメータでのやりとりもなくし、g.sizeでアクセスできるようにします。 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
carryChain()のpres_a[]とpres_b[]は並列化した際、スレッドごとに値が変化するものではないため、グローバル変数へ。さらに構造体Globalを作成し、Global構造体へpres_a[]とpres_b[]を格納、Globalはスレッドごとに変化しない、またはスレッドから公平にアクセスできる変数を格納することとします。 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
initChain() buildChain() carryChain_symmetry() をcarryChain()に統合して変数のパラメータ渡しを極力減らす 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
グローバル変数・構造体を極力減らす 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
変数や関数の構造など極力同等に移植 【参考リンク】Nクイーン問題 過去記事一覧はこちらから エイト・クイーンのプログラムアーカイブ Bash、Lua、C、Java、Python、CU…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 並列処理 やってきました! 並列処理といえば、マルチスレッド、マルチプロセス、分散処…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから キャリーチェーン キャリーチェーンはN27の解を発見したドレスデン大学の研究者が編み…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから はじめに 以下のサイトはとても勉強になります。 World records for …
【参考リンク】Nクイーン問題 過去記事一覧はこちらから N23を発見 Jeff Somersを読む Jeff Somers さんはN23を発…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 対象解除法について では、前項のつづきから。 対象解除法のソースは4つの関数で構成さ…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 対象解除法について まず、Nが小さな盤面で考えていきます。 以下、順に見て理解を深め…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから ミラー ミラー(鏡像)を用いてどのように改善できるのか N5=10、N8=92といっ…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから ビットマップ N×NのチェスボードのN個のクイーンの配置を、bitwise(ビット)…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 第2章 まとめ ここまでNクイーンをこんなにやってきました。 N-Queens問題:…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 第2章 エイトクイーン 配置フラグ 国内で最もきちんと説明していると(僕が勝手に)思…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 第2章 エイトクイーン バックトラック 前回の「ブルートフォース(力まかせ探索)」で…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから Nクイーン問題について Nクイーン問題とは、NxNの盤面にチェスのクイーンN個を、互…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから ここまでのあらすじ ここまでのおさらいと整理・まとめをしておきたいと思います。 (1…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから ブルートフォース再び 今回、一番初めに紹介しておきながら、クイーンの位置を列挙するこ…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 配置フラグ 各列、対角線上にクイーンがあるかどうかのフラグを用意して高速化を図ります…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから Nを徐々に増やしていく進捗表示テーブルの作成 今は、ソースの中でパラメータを渡す形で…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから これまでのあらすじ ブルートフォースは日本語で「ちからまかせ探索」という意味になりま…
書籍の紹介 詳解 シェルスクリプト 大型本 2006/1/16 Unixのプログラムは「ツール」と呼ばれます。 Unixは、処理を実現するた…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから 前回までのあらすじ 前回の記事では、エイトクイーンの3つのルール 1.縦に一つだけの…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから Nクイーンについて簡単に ではさっそくNクイーン問題を考えてみましょう。 この章では…
【参考リンク】Nクイーン問題 過去記事一覧はこちらから Nクイーン問題とは Nクイーン問題とは、「8列×8行のチェスボードに8個のクイーンを…
シェルスクリプト1000本ノック これからシェルスクリプトを勉強する人、なんとか本を見ながらかけるようになった人、バリバリ書いてきたけど、ま…
BASHシェルスクリプトで「キー入力待ち」プロンプトを実装する 説明も何もよくみるあれです。 実行しますか? (y or N): 何かを押せ…
mapfile(マップファイル) bash シェルの mapfile コマンドは、読み取り配列としてよく知られています。 主な目的は、標準入…
ワンライナー ワンライナー(英:one liner)とは 華麗な職人技によって処理を1行に全部詰め込んだ「1行ですべてが完結しているプログラ…
MacOSをアップデートしてから、ターミナルを開くたびに、「The default interactive shell is now zsh…
ワンライナー ワンライナー(英:one liner)とは 華麗な職人技によって処理を1行に全部詰め込んだ「1行ですべてが完結しているプログラ…
ターミナルトリック ターミナル(コンソール)で、「知っているとちょっとだけ便利なコマンド」を紹介します。 このコマンドはCtrlキーを押しな…
スクリプトのデバッグ Bashは広範なデバッグ機能を提供しています。 デバッグの方法は3種類あります 1.ターミナルの実行時に -x オプシ…
nlコマンド nl コマンドは、テキストファイルを行番号付きで出力するコマンドです。 cat -n コマンドでも行番号を付けることができます…
commコマンド commコマンドは、テキストファイルを比較するコマンドです。 comm ファイル1 ファイル2 で2つのテキストファイルを…
shufコマンド shufはファイルやキーボードから入力した内容をシャッフル(shuffle)して出力するコマンドです。 乱数を扱う$RAN…
numfmtコマンド numfmtコマンドは、数値の桁揃えや、金額を表示する場合の3桁区切りを簡単に実行できる便利コマンドです。 numfm…
rsコマンド rsコマンドは、行列を入れ替えるコマンドです。 行列を入れ替える処理は、これはもう頻繁に起こるのです。 そのたびに頭を悩ませる…
columnコマンド 「column」はテキストを、複数の列(column)に整形するコマンドです。 区切り文字を指定して表形式で表示する …
joinコマンド join は、2つのテキストファイルの内容を比較し、共通する項目がある行を連結するコマンドです。 例えば、 1つ目のテキス…
pasteコマンド pasteコマンドは、複数のファイルを行単位で連結するコマンドです。 $ pasteファイル1 ファイル2 で「ファイル…
乱数や連番を作成する jotコマンド 連番を生成する 文字列と組み合わせた連番を作成する printf のフォーマットで出力する 連番の範囲を指定して出力する 乱数を出力する jotコマ…
rev コマンド すべての行の文字の順序を逆にする 次の例に示すように、すべての行で文字の順序を逆にします。 tac コマンドはファイルの各…
tacコマンド tac コマンドはファイルの内容を逆順に出力するコマンドです。 最後の行が最初に表示されます。 tac という言葉は、cat…
名著紹介 これほどまでシンプルに「UNIX/Linuxとは」について書かれた本はない。 「エンジニアとしての信念はUNIXである」とはどうい…
ソート これまで、バブルソート、選択ソート、挿入ソート、マージソート、シェルソート、クイックソートを学習してきました。 【バブルソート】 h…
クイックソート クイックソートは、誰もが人気ナンバーワンと認めるソートアルゴリズムです。 クイックソート 理由として、クイックソートは多くの…
シェルソート シェルソートは、挿入ソートの欠点を補う形で考案されたソートアルゴリズムです。 シェルソート シェル=貝殻 というのは「がせ情報…
マージソート マージソートは、これまで紹介した「バブルソート」「挿入ソート」「選択ソート」と比べると、少なくともスピードの点ではずっと高速で…
配列とリスト これまで配列について説明してきました。 配列で再帰を組む方法を前回説明しました。 配列は 非順序配列は探索が遅い 順序配列は挿…
NQueenのロジックを研究してます。NQueenを別のアプローチから検証するためにアルゴリズムの勉強をはじめました。まずは基礎からで経路探索へ向かいたいと考えています。試行錯誤したことを備忘録として日記に追加することにしました。 10月12日 今マージソートを勉強しているのですが難しいので日記をつけて整理することにしました。 プログラムソースは以下です。 https://github.com/suzukiiichiro/Algorithms-And-Data-Structures/blob/master/Bash/05_1MergeSort.sh ロジ…
再帰 実行している関数自身の関数の処理内で、自分自身である関数を呼び出し実行することです。 再帰は必ず基底条件を明示する必要があります。 (…
キュー キューはデータ構造の一つです。 キューは待ち行列とも呼ばれ、その名の通り行列に並ぶ事を考えるとイメージしやすいです。 行列においては…
スタック スタックはデータ構造の一つです。 スタックの仕組みは、ものを縦に積み上げる事を考えるとイメージしやすいです。 積み上げられた山から…
挿入ソート 挿入ソートとは、未整列の要素を一つずつつまみ上げて、整列済みの列の適切な位置に挿入していくアルゴリズムです。 挿入ソートは、選択…
選択ソート 選択ソートは、未整列の配列要素の中から最小を選択し、配列先頭の整列済み列の末尾に追加していく並べ替えアルゴリズムです。 バブルソ…
バブルソート バブルソートは単純選択方法と同様、実現は簡単です。 しかし、比較回数と交換回数は最悪の場合、O(N^2)です。 ソート中に選ば…
Bash/シェルスクリプトで学ぶビッグオー ビッグオーとは? オーダー記法です。 オーダー記法とは、「計算量の割合」です。 例)Aさんの年齢…
はじめに さて。 前回の章では、アルゴリズムを勉強していくためのもととなるテンプレートとして、配列に値を入れる仕組みと、配列の中身を表示する…
Bashスクリプトで配列の準備 この章では、Bashスクリプトでいくつかのソートアルゴリズムを実行するための、元となるテンプレートを配列で作…
NQueenのロジックを研究してます。NQueenを別のアプローチから検証するためにアルゴリズムの勉強をはじめました。まずは基礎からで経路探索へ向かいたいと考えています。試行錯誤したことを備忘録として日記に追加することにしました。 9月29日 今日はバイナリサーチでツリーの中身を表示するメソッドを作成します。 こんな感じでルートノードから下に向かってツリーの中身を出力します…
Bashスクリプト(シェルスクリプト) は50年以上も前からUNIXプログラミングのエッセンスとして君臨し、現在もLinuxのコマンドの殆ど…
NQueenのロジックを研究してます。NQueenを別のアプローチから検証するためにアルゴリズムの勉強をはじめました。まずは基礎からで経路探索へ向かいたいと考えています。試行錯誤したことを備忘録として日記に追加することにしました。 9月27日 アルゴリズムの勉強を始めました。 まずは基礎から。 バイナリサーチからスタートします。 それまでのものは鈴木先生が作成している以下のgi…
ここではシェルスクリプトのBashについてのTIPSを紹介します。C言語やJavaといった高級言語にあってbashにはない部分について補完で…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 9月15日 グラフ理論を使ってエイトクイーンを解く方法があるらしい。 NetworkXを使ってエイト・クイーンパズルを解く https://analytics-note.xyz/graph-theory/networkx-eight-queens-puzzle/ まず、すべて効き筋同…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 9月9日 数が合わない点はsymmetryOps内での単純なコードの間違えだったため修正して数が合った。 ただ、速度が過去のロジックより20%遅…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 9月5日 n13でsymmetryOps v2 とv1での違いを調査する。 正確な回答 v1の方が数が多いのでv1だけsymmetryOpsを突破したも…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 9月2日 正しい結果と間違った結果のtop,left,bottom,rightの値を比較してみる。 間違った結果の方が数が多いので、間違っている…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月30日 枝刈りを追加した。 追加前よりなぜか遅くなった。 symmetryOpsのロジックを変えると速くなるだろうか。 枝刈りを追加することによ…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月29日 ミラー処理を入れてみた。 ミラー処理は1行目については右側半分だけクイーンを置くというもの 奇数の場合は真ん中もやる。 ミラー処理を適用…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月18日 調べたところ、2辺が同じ場合は3辺目を比較する処理をコメントしていた コメントを外して実行したところ旧ロジックと同じ結果になった。 旧…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月17日 新旧ロジックでn2,n4,n8判定の差分をロギングして比較してみた。 以下が新ロジックだとn4だったが、旧ロジックだとn8だった t0:3,t1:5,l0:4,l1:2,b0:3,b1:5,r0:4,r1:6 t0:2,t1:6,l0:6,l1:2,b0:2,b1:6,r0:6,r1:4…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月12日 この前と同じようにn10について新旧ロジックを比較して見た。 新ロジックだけのルートは以下の2つだけだった。 どちらも正解にはならなか…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月10日 比較して同じだった場合は反時計回りに90度回転させたもの同士を比較するようにしてみた。 例えば 上2行と右2列が同じだった場合はそれぞ…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月9日 抽出した新ロジックだけのルートの中から、クイーン数に影響のあるもの、 symmetryOpsのあとで、NQueenをして最終行に到達す…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月8日 先日抽出した、新ロジックだけsymmetryOpsを突破した組み合わせのクイーンの配置を出力してみた。 t0:1,t1:3,l0:4,l1:7,b0:1,b1:3,r0:2,r1:7 7 6 5 4 3 2 1 0 ============================= 0| 00000010 1| 00001000 2|…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 8月5日 N8でsymmetryOps直後の新旧ロジックのクイーンの配置を比較してみた。 N8だとユニーク数の正しい数は12 新ロジックだとユニー…
NQueenのロジックを研究してます。日々NQueenで試行錯誤したことを備忘録として日記に追加することにしました。 いままでのNQueenは NQueenは、ひとつの解には、盤面を90度・180度・270度回転、及びそれらの鏡像の合計8個の対称解が存在します…
標準出力とファイルの両方に出力する teeコマンド ファイルへのリダイレクトとパイプを同時に行う 出力するファイルは都度新規作成ではなく追記する teeコマンド概要 teeコマンドは、…
重複している行を削除する uniqコマンド 重複している行を削除する 大文字/小文字を区別しないで重複行を削除する 重複している行をカウントする uniqコマンド概要 uniq…
文章を逆順に出力する revコマンド ファイルの各行を反転させる キーボードから入力した内容を反転させる revコマンド概要 reverseの語源を持つ「rev」は、ファ…
ファイルを逆順に出力する tacコマンド ファイルを最終行から逆順に出力する tacコマンド概要 catコマンドを逆から読んだ「tac」はファイルの最終行から、行単位に逆順…
数字の列を出力する seqコマンド 連続番号を出力する 開始の数と間隔を指定する 数字を逆順で出力する 書式を指定して出力する seqコマンド概要 sequenceの語源を…
乱数や連番を作成する jotコマンド 連番を生成する 文字列と組み合わせた連番を作成する printf のフォーマットで出力する 連番の範囲を指定して出力する 乱数を出力する jotコマ…
テキストファイルを行単位で並べ替える sortコマンド テキストファイルを並べ替える 数値の大小で並べ替える フィールドを指定して並べ替える CSVデータを並べ替える sortコマンド概要…
テキストファイルの文字数や行数を数える wcコマンド 行数と単語数とバイト数を数える 文字数を数える 行数だけを表示する wcコマンド概要 「wc」はテキストファイルの行数や単語数(word…
アーカイブファイルを作成する/展開する tarコマンド アーカイブファイルを作成する アーカイブファイルを展開する tarコマンド概要 「tar」は、複数のファイルを1つにまとめた“アーカ…
文字列を編集する sedコマンド概要 「sed」は「Stream EDitor」の略で、「sed スクリプトコマンド ファイル名」で、指定したファイルをコマンドに従っ…
タブと空白を変換する expandコマンド タブを空白に変換する(expandコマンド) タブの幅を指定する expandコマンド概要 「expand」はタブを空白に変換…
行から固定長またはフィールド単位で切り出す cutコマンド 文字数を指定して切り出す フィールドを指定して切り出す 出力の区切り文字を変更する cutコマンド概要 「cut」は、ファイルを読み込…
ディスク/ディレクトリの使用量を表示する duコマンド ディレクトリごとのディスク使用量を表示する ディスク使用量の合計だけを表示する カレントディレクトリ直下のファイル、ディレクトリごと…
ディスクの空き容量を表示する dfコマンド ディスクの空き容量を調べる dfコマンド概要 「df」は、ディスクの空き領域(freeスペース)のサイズを集計して表示するコマンドで…
テキストファイルの文字を置換する trコマンド 文字を置換する 大文字/小文字を変換する 改行を除去する 固定長のデータをタブ区切りに変換する/カンマ区切りに変換する trコマンド概要…
文字コードと改行コードを変換する nkfコマンド 文字コードと改行コードを変換する 文字コードを判定する 文字コードを変換してファイルを書き換える CentOS 7にnkfをインストールするには…
シェルスクリプトでオプションを処理したい getoptsコマンド オプションを解析する エラーメッセージを表示しない 引数付きのオプションを使用する getoptsコマンド概要 「getopt…
ファイル・ディレクトリのパーミッションを変更する chmodコマンド パーミッションを表すアルファベットと数値の意味 パーミッションを変更する パーミッションの変更内容を確認するには? chmodコ…
ファイル形式を確認する fileコマンド ファイルの形式を表示する ファイルのリストから調べる シンボリックリンクの参照先を調べる 圧縮されているファイルを調べる fileコ…
指定した文字が含まれている行だけを抽出する grepコマンド コマンドの実行結果から必要な箇所だけを抽出する 単語単位で検索する 前後の行も表示する 行番号付きで表示する 複数の文字列を指定して…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第9回目。対象解除法が正しいことの検証をしてみたいと思います。プログラムを改造してクイーンの配置を出力するようにします。 対象解除法が正しいか検証してみよう 今回は対象解除法が正しいかどうかを検証するためプログラムを改造してクイーンを設置した場所を出力するようにし…
この方法を知っていれば、1行でも複数行でも3点リーダーを表示でき、レスポンシブルデザインのようなマルチデバイスでもレイアウトが崩れずに表示可能です HTMLのレイアウトでは時には文字がはみ出した際に、3点リーダーと呼ばれる「…」をつける場合があります。 普通に記述してしまえば対応できますが…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第8回目。今回から対象解除法が登場します。解を見てみると左右反転だったり90度、180度回転すると同じものがあります。この性質を利用して探索回数を減らそうというアルゴリズムです。今回は対象解除法の概要を説明します。 対象解除法 今回から対象解除法を取り扱います。 解を見てみると左右反転だったり90度、180度回転すると同じものがあります。この性質を利用して探…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第7回目。今回はバックトラックについて図で示しながら詳細な動きを説明します。バックトラックは上下左右対角線上のフラグをチェックするので探索がより効率よくなっています。 バックトラック 今回も引き続きバックトラックを説明していきたいと思います。 前回はプログラムの概要を説明しましたが、今回はnqueenメソッドの…
アプリでスクロールしてコンテンツにスナップする動作は一般的ですが、CSSでもアプリと同じようにスクロールしてスナップする動作が実装できます。 出典元:CSS Scroll Snap - Ahmad Shadeed アプリなどで横スクロールしてコンテンツにスナップするといった動作をよく見かけると思いますが、CSSで横スクロールのU…
プロセスを強制終了させます。killは実行中のプロセスを終了させる場合に使うコマンドです。 killコマンド killコマンドでプロセスIDを指定してプロセスを終了させる killallコマンドで名前を指定してプロセスを終了させる kil…
メッセージやテキストファイルを1画面ずつ表示する lessコマンド テキストを1画面ずつ表示する キー操作のヘルプを表示する 長い行を折り返さずに表示する ファイルの末尾まで表示したらすぐに終了する…
長いメッセージやテキストファイルを1画面ずつ表示する moreコマンド 長いメッセージやテキストファイルを1画面ずつ表示する テキストを1画面ずつ止めながら表示する 実行結果を止めながら表示したいとき…
headコマンドとは逆に、ファイルの末尾だけ表示するのがtailコマンドです。 tailコマンド tailコマンドでファイルの末尾部分だけを表示する ログファイルを監視する ファイルの特定の範囲の行を取り出す(headとtai…
headはテキストファイルの最初の10行を、tailは最後の10行を表示するコマンドです。表示する行数は、オプションで変更することができます。 headコマンド headコマンドでファイルの先頭部分だけを表示する パイプを使って実行結果の最初の部分だけを確認する tailコマンドでファイル…
「cat」は、「conCATenate(つなぐ、連結する)」のcatです。ファイルを連結するためのコマンドですが、ファイルの内容を表示する際によく使われます。 catコマンド ファイルの内容を表示する ファイルの内容を行番号付きで表示する 複数ファイルを連結して1つのファイルにする 概要 「cat」は、「co…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第6回目。今回はバックトラックについて説明します。解を出すmainメソッドなどプログラムの概要を説明します。 mainメソッド概要 今回は前回から引き続きバックトラックを説明していきたいと思います。 プログラムソースは以下のURLにあります。 https://github.com/suzukiiichiro/N-Queens/blob/master/03Python/py03_nqueen.py 429-4…
「echo」はメッセージなどを表示するコマンドです。「echo メッセージ」でメッセージを表示します。「echo $変数名」で環境変数やシェル変数を表示する際にも使用います。 echoコマンド メッセージや環境変数を表示します。 概要 「echo」はメッセージなどを表示するコマンドです。 $echo メッセージ でメッセージを表示しま…
AWSのEC2からhas detected degradation of the underlying hardware…と来たときでも簡単に対応できます。その対応方法を詳細に説明します。 みなさんの中にもAWSのEC2を使った事がある人もいるかと思います。 そのAWSからある日、下記のようなメールが届きました。 Hello, EC2 has detected degradation of the underlying hardware…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第5回目。今回はバックトラックについて説明します。 バックトラック 今回はバックトラックを説明していきたいと思います。 今回のバックトラックのロジックは前回の配置フラグの拡張版です。 配置フラグは上…
SEO対策必見。Hugoのサイトマップをみてみるとlastmodの値がすべて同じになってました。その原因と解決 方法を詳細に説明しています。 Hugoを使って記事を作成しているのですが、サイトマップをみてみるとlastmodの値がすべて同じになってました。その原因と解決策を今回は探…
Googleにインデックスされるというのは非常に重大なことです。せっかく書いた記事が検索結果に表示されないとき、どうしたら良いのでしょうか? 近年、ブログやWEBサイトを作って公開している人が増えてきました。 そうした中で、Googleにインデックスされるというのは非常に重大なことで…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第4回目。今回は配置フラグ(制約テスト高速化)について図で示しながら詳細な動きを説明します。再帰とfor文が絡み合っている時にどうやって動くのかを中心に説明します。 配置フラグ(制約テスト高速化) 今回も引き続き配置フラグ(制約テスト高速化)を説明していきたいと思います。 前回はプログラムの概要を説明しました…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第3回目。今回は配置フラグ(制約テスト高速化)について説明します。 配置フラグ(制約テスト高速化) 前回は全くアルゴリズムを使わないで全パターン1行に1つずつクイーンを設置するブルートフォース 力任せ探索でした。…
この記事はシェルスクリプトを45分でざっくりマスターできるチュートリアルです。bashスクリプト「Hello, World」から、ifステートメントなどの条件分岐、while, for, untilループをはじめ、シェルスクリプトの効率的なデバッグ手法の紹介など、シェルスクリプトを網羅的かつ短時間で学習することができます。 …
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第2回目。再帰の挙動などアルゴリズムを使わないブルートフォース力任せ探索についてプログラムの詳細部分を説明します。 グローバル変数 今回は、前回からの引き続きでブルートフォース力任せ探索のプログラムの詳細部分を説明します。 プログラムのソースは以下のURLをご…
UIロックが発生する場合は画面上の処理と、重い処理を分けることで表示させることが可能です。早速jsでその処理を実装して軽快なUIを作成しましょう。 javascriptで重い処理を書く際やforやwhileなどのループを記述する際に気をつけないといけないのがUIロックです。 とくに重い処理…
スマホ、タブレットを使って記事が投稿できたら、おしゃれなカフェで記事を書けます。そんなブログの投稿や更新方法を説明していきます。簡単に導入可能。 iPhoneやiPadなどのスマホ、タブレットは持ち運びに非常に便利です。パソコンよりも軽く、パソコンと同等の機能を備えてます。 そうした端末…
はじめに まずはこちらをやりましょう。 パソコンは不要。iPhoneやiPadなどのスマホ、タブレットでできるブログ投稿 必要なもの iPa…
pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第1回目。アルゴリズムを使わないブルートフォース力任せ探索について説明します。 Nクイーン問題とは Nクイーン問題とは、チェスの盤面にクイーンを1行に1個ずつ効き筋に当たらないように置いていこうという問題です。 https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%88%E3%83%BB%E3%82%AF%E3%82%A4%E3%83%BC%E3%83%B3 Nクイーン…
AWSのEC2にGo言語とHugoをインストールして、Webサイトを簡単に、最速で作成する手順を詳細に解説してます。Github Pagesからの移行も可能になります HugoをGitHub Pagesで展開していたのですが、今回はGitHub Pagesではなく、Amazon EC2にHugoをインストールして…
Hugoで複数のファイルを出力する方法は?この方法の出力やファイル形式を変えることで、RSSやJSON、AMPなどの形式も出力可能になります。 HUGOは非常に強力な静的HTMLジェネレーターです。 複数のXMLを設置する機会があり、どうやったら設置できるのかなと悪戦苦闘しながら実装で…
SVGとCSSのみでマルチデバイスの最新トレンドデザインを実装。マスク処理も可能で時間と労力を節約できて、サイトのパフォーマンスも向上します。 出典元:Building UI Components With SVG and CSS - Ahmad Shadeed SVGはアイコンやイラストだけでなく、開発者が時々忘れてしまう隠れた力をたくさん持っています。 CS…
e-Statの統計データhampelを使って時系列データの異常値検知試みます。 hampelによる異常値部分を追加しよう 前回はgoogle custom search の検索結果を利用して社会的に関心の高そうな列の抽出を試みました。 今回は、以前紹…
bashプログラミングで最も強力な「grep」コマンドの基本的な考え方、bashスクリプトでの一般的な操作例を、ざっくりと説明します。 はじめに grep(グレップ)コマンド。UNIX/Linuxにおいてこれほど歴史あり、強力なコマンドはありません。そして多くのユーザーがこのコ…
Google Custom Search APIの検索結果とe-Statの統計データをマッチングして社会的に関心のある項目を抽出してみます Google Custom Search APIの検索結果と統計名の列名をマッチンングさせる 今回は、前回取得したGoogle Custom Search APIの検索結果と統計名の列名をマッチンングさせ…
Google Custom Search APIの検索結果をjqでパースする方法を説明します。 google Custom Searchの検索結果をcsvに整形する 統計データから列名を取得してgoogle Custom Searchの検索結果に当てに行きマッチする回数の高い…
2022年に期待されるトレンドは?クリエイターは、より「良い」ウェブデザインとされるものの境界を押し広げています。最新トレンドを取り入れましょう。 出典元:Web design trends for 2022 | Layout この2年間で学んだことは、私たちは常に新しいものに適応し続けなければならないということです。2022年に向けて、デ…
第0回「Webデザイナー、コーダーってなに?」にです。この講座では現役Web開発者がWeb業界を目指す方に様々な情報をわかりやすい解説しています。 はじめに 「未経験でもWebデザイナー、コーダーになろう」ではWebデザイナーやコーダーなどWeb業界を目指す方に、現役Webデザイナー兼コー…
Google Custom Search APIで10件目以降の取得方法、newsなど検索対象の絞り込み方法について説明します。検索エンジンの設定にあるschema.orgを使用します。 Google Custom Search API 10件目以降の取得方法について 「木材流通統計調査」をgoogleで検索してみると最初の方は、政府関係の木材流通統計調査の概要説明など…
わずか数行のコードでCSSで洗練されたデザインを作成可能。jsで実装していたことがCSSでも!?そんな効率的に開発するためのテクニックを紹介しています 出典元:8 Essential CSS Tips and Tricks Every Developer Should Know CSSは、HTMLスケルトンを設定した後、Webページにスタイルを追加するために使用されます。さらに、わずか数行…
2022年1月時点でのGoogle Custom Search APIの設定方法を説明します。APIキーの作成、検索エンジンIDの取得が中心です。 統計名でgoogle検索して関心度の高いキーワードを抽出しよう e-Statの解析の目標として、膨大な統計データの中から一般の人に関心度の高い…
Webサイトをダークモード化、用意するファイルの数は1サイズでOK。綺麗なファビコン表示と、ファビコンをダークモード化する方法を詳しく説明します。 最近ダークモードと呼ばれる機能に対応したアプリが増え、それと同じようにWebサイトでもダークモードに対応しているものを見かけるようになりまし…
モバイルアプリ開発の新しいトレンドが数多く出現していますが、今回はモバイルアプリ開発のトレンドのTOP15を取り上げます。注目のトレンド満載です。 出典元:Top 15 Mobile App Development Trends to Watch for in 2022 モバイルアプリ開発業界は、驚異的なスピードで進化しています。このデジタルダーウィン時代に生き残り、繁栄する…
ここではpythonのPandasでcsvを読み込んだDataFrameオブジェクトの使い方、DataFrameオブジェクトからSeriesオブジェクトへの変換方法を説明します。 Pandas DataFrameオブジェクト Pandasでcsvをread_csvするとDataFrameオブジェクトとして読み込まれます。 DataFr…
ここでは時系列データの異常値検知アルゴリズムであるhampel(ハンペル)のpythonライブラリの利用方法を説明します。インストールから基本的な使い方を説明します。 hampel フィルタとは 時系列データの異常値検知で良いのないかなあと探しました。 最近は機械学習で時系列データの異常値検知をやっているものが結構ある感じ…
overflow: scroll で後ろの要素がスクロールすることがありますが、CSSを使って、解決する問題、その仕組み、および使用場所について説明します。 出典元:Prevent Scroll Chaining With Overscroll Behavior - Ahmad Shadeed position: fixedの要素があるとしましょう。スクロールがある場合は、要素の下部の境界に到達すると、ブラウザは…
ここではe-Statデータで時系列データの異常値検知の必要性を説明し、前提条件としてpythonを利用してcsvの読み込み方を説明します。Pandasを利用します。 s-Stat 時系列データで異常値を検知しよう たくさんあるデータの中から関心の高そうな項目を抽出して表示しようというテーマでe-Statデータを取り扱っ…
「現役Webデザイナーが教えるHTML初心者講座」では、HTMLを始める人、難しそうと思っている人、挫折してしまった人でもHTMLがわかる講座です。 はじめに HTMLをこれから始める人、HTMLってプログラムみたいで難しそうと思っている人、HTMLで挫折してしまった人。そういった人たちでも…
コマンドの実行を特定の期間一時停止する場合は、sleepコマンドを使用できます。遅延量は、 秒(s)、分(m)、時間(h)、および日(d)で設定できます。'sleep_example.sh' という名前のファイルを作成し、次のスクリプトを追加します。このスクリプトは、実行後5秒間待機します。 sleepコマンド sleepコマンド: コマンドの実行を特定の期間一時停止する場合は、sleepコマンドを使用できます。遅延量は、 秒(s)、分…
waitコマンドは、実行中のプロセスの完了を待機するLinuxの組み込みコマンドです。 waitコマンドは、特定のプロセスIDまたはジョブIDで使用されます。waitコマンドでプロセスIDまたはジョブIDが指定されていない場合、現在のすべての子プロセスが完了するのを待機し、終了ステータスを返します。' wait_example.sh'という名前のファイルを作成し、次のスクリプトを追加します。 waitコマンド waitコマンド: waitコマンドは、実行中のプロセスの完了を待機するLinuxの組み込みコマンドです。 waitコマンドは、…
dateコマンドを使用して、現在のシステムの日付と時刻の値を取得することができます。日付と時刻は、「Y」、「m」、「d」、「H」、「M」、および「S」を使用します。'date_parse.sh'という名前の新しいファイルを作成し、次のコードを追加して、日、月、年、時、分、秒の値を表示します。 dateコマンド 現在の日付を解析する: dateコマンドを使用して、現在のシステムの日付と時刻の値を取得することができます。日付と時刻は、「Y…
' mail 'または ' sendmail 'コマンドを使用して電子メールを送信できます。これらのコマンドを使用する前に、mailまたはsendmailに必要なパッケージをインストール・設定をする必要があります。' mail_example.sh 'という名前のファイルを作成し、次のコードを追加して電子メールを送信します。 mailコマンド メールを送る: ' mail ‘または ' sendmail ‘コマンドを使用して電子メールを送信できます。これらのコマンドを使用す…
'-e'または'-f'オプションを使用して、ファイルの存在を確認できます。次のコードの 'if [ ]'では、ファイルの存在をテストするために「-f」オプションが使用されています。' file_exist.sh 'という名前のファイルを作成し、次のコードを追加します。ここで、ファイル名はコマンドラインから渡されます。 ファイルが存在するかどうかを確認 ファイルが存在するかどうかをテストします。 ‘-e’または’-f&rsqu…
bashで「>>」演算子を使用すると、既存のファイルに新しいデータを追加できます。'append_file.sh 'という名前のファイルを作成し、次のコードを追加して、ファイルの最後に新しいコンテンツを追加します。ここで、「Learning Level 5」は、スクリプトの実行後に「level.txt」ファイルのに追加されます。 ファイルに追加 ファイルに追加: bashで「»」演算子を使用すると、既存のファイルに新しいデータを追加できます。‘ap…
'rm'コマンドは、ファイルまたはディレクトリを削除するためのコマンドです。次のコードを使用して「delete_file.sh」という名前のファイルを作成し、ユーザーからファイル名を取得して削除します。ここで、「-i」オプションは、ファイルを削除する前にユーザーに削除確認をに使用されます。 ファイルを削除する ファイルを削除します: ‘rm’コマンドは、ファイルまたはディレクトリを削除するためのコマンドです。…
whileループでreadコマンドを使用すると、bashで任意のファイルを1行ずつ読み取ることができます。'read_file.sh'という名前のファイルを作成し、次のコードを追加してください。 別途作成する'book.txt'の内容を読み取ります。 ファイルを読む ファイルを読む: whileループでreadコマンドを使用すると、bashで任意のファイルを1行ずつ読み取ることができます。&l…
'mkdir'コマンドを実行する前に、現在の場所にディレクトリが存在することを確認する事ができます。mkdir コマンドの' -d 'オプションは、特定のディレクトリが存在するかどうかをテストするためのオプションです。'directory_exist.sh'という名前のファイルを作成し、次のコードを追加してください。ディレクトリの存在を確認してディレクトリを作成します。 存在を確認してディレクトリを作成する 存在を確認してディレクトリを作成します。 ‘mkdir’コマンドを実行する前に、現…
Bashは「mkdir」コマンドを使用して新しいディレクトリを作成します。'make_directory.sh'という名前のファイルを作成し、次のコードを追加して、ユーザーから新しいディレクトリ名を取得します。ディレクトリ名が現在の場所に存在しない場合は、ディレクトリが作成されます。 ディレクトリを作成する ディレクトリを作成する: Bashは「mkdir」コマンドを使用して新しいディレクトリを作成します。‘mak…
Bash関数は、数値と文字列値の両方を渡すことができます。関数から文字列値を渡す方法を次の例に示します。'function_return.sh'という名前のファイルを作成し、次のコードを追加します。関数greeting()は、文字列値を変数valに返します。この変数は、処理の最後に他の文字列と組み合わせて出力します。 関数からの戻り値の受け渡し 関数からの戻り値の受け渡し: Bash関数は、数値と文字列値の両方を渡すことができます。関数から文字列値を渡す方法を…
前2回目の説明に続き、bashプログラミングの基本的な考え方3として最終章を説明します。bashスクリプトの一般的な操作を、ざっくりと説明します。 はじめに Bashスクリプトは、シェルコマンドの実行、複数のコマンドの同時実行、管理タスクのカスタマイズ、タスクの自動化の実行など、さまざまな…
ここではs-StatのAPIを利用して、新着一覧を取得する方法を説明します。wgetを利用してAPIにアクセスします。STAT_CODE、TABLE_INFを利用します。 e-Statで新着一覧を取得しよう 毎日自動的に処理できるようにしたいので新着一覧を取得する必要があります。 新着一覧は、リスト取得用のAPIで…
Bashは、関数宣言時に関数パラメーターまたは引数を宣言できません。ただし、他の変数を使用して、関数内でパラメーターを使用できます。関数の呼び出し時に2つの値が渡された場合、値の読み取りには$1と$2の変数が使用されます。'function_parameter.sh'という名前のファイルを作成し、次のコードを追加します。ここで、関数 'Rectangle_Area'は、パラメーター値に基づいて長方形の面積を計算します。 関数パラメーターを使用する パラメータを使用して関数を作成します。 Bashは、関数宣言時に関数パラメーターまたは引数を宣言できません。…
簡単な関数を作成して関数を呼び出す方法を次のスクリプトに示します。'function_example.sh'という名前のファイルを作成し、次のコードを追加します。bashスクリプトで角かっこを使用せずに、名前でのみ関数を呼び出すことができます。 関連記事 ざっくりわかるシェルスクリプト1」 ざっくりわかるシェルスクリプト2」 ざっくりわかるシェルスクリプト3」 関数を作成する 関数の作成: 簡単…
さまざまな方法でbashの算術演算を実行できます。次のスクリプトに、二重角かっこを使用してbashに2つの整数を追加する方法を示します。次のコードを使用して、「add_numbers.sh」という名前のファイルを作成します。2つの整数値がユーザーから取得され、加算の結果が出力されます。 変数に2つの数値を追加します 2つの数字を追加します。 さまざまな方法でbashの算術演算を実行できます。次のスクリプトに、二重角かっこを使用し…
他のプログラミング言語と同様に、bashには文字列データから値を切り取る組み込み関数はありません。ただし、次のスクリプトに示すbashで、別の方法で部分文字列のタスクを実行できます。スクリプトをテストするには、次のコードを使用して「substring_example.sh」という名前のファイルを作成します。ここで、値6は部分文字列が開始する開始点を示し、5は部分文字列の長さを示します。 文字列の部分文字列を取得する 文字列の部分文字列を取得します。 他のプログラミング言語と同様に、bashには文字列データから値を切り取る組み込み…
文字列変数はbashで簡単に組み合わせることができます。「string_combine.sh」という名前のファイルを作成し、次のスクリプトを追加して、変数を一緒に配置するか、「+」演算子を使用して、bashで文字列変数を組み合わせる方法を確認します。 変数に2つの文字列を組み合わせる 文字列変数を組み合わせる: 文字列変数はbashで簡単に組み合わせることができます。「string_combi…
名前付きのコマンドライン引数を読み取る方法を示します。'command_line_names.sh'という名前のファイルを作成し、次のコードを追加します。ここで、XとYの2つの引数がこのスクリプトによって読み取られ、XとYの合計が出力されます。 名前を使用してコマンドラインから引数を取得する コマンドラインから名前付きの引数を取得: 名前付きのコマンドライン引数を読み取る方法を示します。…
Bashスクリプトは、他のプログラミング言語と同様に、コマンドライン引数から入力を読み取ることができます。たとえば、$1と$2の変数は、最初と2番目のコマンドライン引数を読み取るために使用されます。「command_line.sh」という名前のファイルを作成し、次のスクリプトを追加します。次のスクリプトによって読み取られた2つの引数値は、引数の総数と引数値を出力として出力します。 コマンドラインから引数を取得 コマンドラインから引数を取得: Bashスクリプトは、他のプログラミング言語と同様に、コマンドライン引数から入力を…
caseステートメントは、if-elseif-elseステートメントの代わりに使用されます。このステートメントの開始ブロックと終了ブロックは、「case」と「esac」によって定義されます。'case_example.sh'という名前の新しいファイルを作成し、次のスクリプトを追加します。次のスクリプトの出力は、例として前のelseと同じになります。 case 文 caseステートメントの使用: caseステートメントは、if-elseif-elseステートメントの代わりに使用されます。このステートメ…
else if条件の使用は、bashでは「elif」を定義します。'elseif_example.sh'という名前のファイルを作成し、次のスクリプトを追加して、bashスクリプトでelseifがどのように定義されているかを確認します。 else if と else else ifステートメントの使用: else if条件の使用は、bashでは「elif」を定義します。‘elseif_example.s…
'||'は、ifステートメントでorロジックを定義するために使用されます。次のコードを使用して「if_with_or.sh」という名前のファイルを作成し、ifステートメントのorロジックの使用を確認します。ここで、nの値はユーザーから取得されます。値が15または45の場合、出力は「ゲームに勝ちました」になります。それ以外の場合、出力は「ゲームに負けました」になります。 or 条件を if文で使う orロジックでifステートメントを使用する: ‘||‘は、ifステートメントでorロジックを定義す…
前1回目の説明に続き、ここではbashプログラミングの基本的な考え方2として、bashスクリプトの一般的な操作を、ざっくりと説明します。 はじめに Bashスクリプトは、シェルコマンドの実行、複数のコマンドの同時実行、管理タスクのカスタマイズ、タスクの自動化の実行など、さまざまな…
「簡単にできるHugoで人気の記事を表示する方法」の第2回です。スプレッドシートからデータを取得して、PVランキングをHugoと連携する方法を解説します 簡単にできるHugoで人気の記事を表示する方法の2回目になります。 前回(簡単にできるHugoで人気の記事を表示する方法 #01)ではGAS(G…
2つ以上の条件を持つifステートメントでは、さまざまなタイプの論理条件を使用できます。andロジックを使用してifステートメントで複数の条件を定義する方法を次の例に示します。 and 条件を if 文で使う ANDロジックでifステートメントを使用する: 2つ以上の条件を持つifステートメントでは、さまざまなタイプの論理条件を使用…
単数、または複数の条件でif条件を使用できます。このステートメントの開始ブロックと終了ブロックは、「if」と「fi」で定義されます。「simple_if.sh」という名前のファイルを作成し、bashでのifステートメントの使用を確認します。ここでは、変数nに10が割り当てられています。$nの値が10未満の場合、出力は「1桁の数値です」になります。それ以外の場合、出力は「2桁の数値です」になります。比較のために、ここでは「-lt」を使用しています。 if 文 if文を使う 単数、または複数の条件でif条件を使用できます。 このステートメントの開始ブロックと…
'read'コマンドは、bashでユーザーから入力を受け取るために使用されます。'user_input.sh'という名前のファイルを作成し、ユーザーから入力を取得するための次のスクリプトを追加します。ここでは、1つの文字列値がユーザーから取得され、他の文字列値を組み合わせて値が表示されます。 対話型入力 ユーザー入力の取得 ‘read’コマンドは、bashでユーザーから入力を受け取るために使用されます。 &lsq…
基本的なforループ宣言を示します。'for_example.sh'という名前のファイルを作成し、forループを使用して、次のスクリプトを追加します。ここでは、forループは10回繰り返され、変数のすべての値、counterを1行で出力します。 for ループ forループの使用 基本的なforループ宣言を示します。 ‘for_example.sh’という名前のファイルを…
whileループの使用法を知るために、「while_example.sh」という名前のbashファイルを作成します。この例では、whileループが5回繰り返されます。count変数の値は、各ステップで1ずつ増加します。count変数の値が5になると、whileループは終了します。 while ループ whileループの使用 whileループの使用法を知るために、「while_example.sh」という名前のbashファイルを作成し…
bashではさまざまな方法で複数行コメントを使用できます。次の例に簡単な方法を示します。'multiline-comment.sh'という名前の新しいbashを作成し、次のスクリプトを追加します。ここでは、「:」と「'」でbashで複数行コメントを実現しています。 マルチラインコメント 複数行コメントの使用 bashではさまざまな方法で複数行コメントを使用できます。 次の例に簡単な方法を示します。 &lsquo…
「#」記号は、bashスクリプトに1行コメントを追加するために使用されます。'comment_example.sh'という名前の新しいファイルを作成し、1行コメント付きの次のスクリプトを追加します。 コメント コメントの使用 「#」記号は、bashスクリプトに1行コメントを追加するために使用されます。 ‘comment_exampl…
さまざまなオプションでechoコマンドを使用できます。次の例では、いくつかの便利なオプションについて説明します。オプションなしで「echo」コマンドを使用すると、デフォルトで改行が追加されます。'-n'オプションは、改行なしでテキストを印刷するために使用され、'-e'オプションは、出力からバックスラッシュ文字を削除するために使用されます。'echo_example.sh'という名前の新しいbashファイルを作成し、次のスクリプトを追加します。 echo コマンド echoコマンドの使用: さまざまなオプションでechoコマンドを使用できます。 次の例では…
ターミナルで非常に単純なbashステートメントを実行します。 コマンドの出力は「Hello, World」になります。 Hello World はじめてのbashコマンド「echo」 ターミナルで非常に単純なbashステートメントを実行します。 コマンドの出力は「Hello, Worl…
ここではbashプログラミングの基本的な考え方、bashスクリプトの一般的な操作を、ざっくりと説明します。 はじめに Bashスクリプトは、シェルコマンドの実行、複数のコマンドの同時実行、管理タスクのカスタマイズ、タスクの自動化の実行など、さまざまな…
データベースもサーバーも不要。Hugoでも簡単に人気の記事を表示する方法を紹介いたします。あなたのサイトにもPVランキングを簡単に設置できます。 Hugoにはさまざまな機能があり、ブログを作るにはもってこいの静的サイトジェネレーターです。 関連記事も取得できて、検索機能もある「至れり尽く…
ここでは、hugoコマンドでnewする時に指定するファイル名を、シェルスクリプトを使ってなるべく簡便にあてはめてファイル生成しようというものです。 はじめに ここでは、hugoコマンドでnewする時に指定するファイル名を、シェルスクリプトを使ってなるべく簡便にあてはめてファイル生成しようと…
GitHub Pagesを使ってSSL付きのサイトを無料で公開する方法を解説しています。Hugoと連携することですぐにWebサイトを公開することが可能です。 デザイナーでもできるはじめてのHugoの2回目になります。 前回(デザイナーでもできるはじめてのHugo #01)はHugoのインストールから公…
ここではe-Statの検索ランキング上位の「アイスクリーム」というのはどういう統計データなのかを説明しながら、私のe-Statデータマイニングの目的が大量のビックデータから社会的関心の高い項目を抽出することであることを示します。 私のe-Statでのデータマイニングの現在の目的は以下の通りです 大量の政府公開データの中から ①面白そうなデータをピックアップする ②データをわ…
今回は前回登場したデータの内容を調べてみましょう。 「統計表情報取得」(リスト取得)APIで取得したデータをもとにe-Statのサイト(ht…
知識ゼロからのe-Statマイニング 日頃から大量のデータを使ってデータマイニングしてみたいなと思って暇なときにサイトを巡回していたらe-S…
sshでサーバーにログインして、なんらかのコマンドを実行しターミナルに表示、ミッション終了後、ターミナルを自動的にログアウトしてローカルに何事もなかったかのようにもどってくる最も簡単な方法 やりたいこと sshでサーバーにログインして、なんらかのコマンドを実行しターミナルに表示、ミッション終了後、ターミナルを自動的にログアウトして…
Hugoでscssやsassを含んだファイルをGitHubに公開し、Git Actionで自動ビルドしようとした際にエラーが出た場合の対処法を解説しています。 scssやsassを使ってcssを記述すると、CSSを構造化できてサイトのメンテナンス性が格段に上がります。 GitHub Pagesで公開しているHug…
今回は、シェルスクリプトでプログレスバーを作ってみようと思います。処理の進捗をコンソールに表示させることで処理の進捗が確認できるのはデバッグや最適化にも役に立ちます。 プログレスバー ターミナルで、処理の進捗が表示されるプログレスバーというのがあります。 処理が進むにつれて、ジリジリとメーターが右に増えていくあ…
今回は、シェルスクリプトとbashの解凍コマンドを使って、日常よく使う圧縮ファイルの解凍作業を簡単にしてみようって話です できること 圧縮されているファイルを、ファイルの拡張子にあわせて解凍すると言う作業は、日常的に多いものです。今回は、圧縮ファイルの拡張子を判断…
今回は、シェルスクリプトとnkfコマンドを使って、日常よく使う作業を簡単にしてみようって話です 必要なもの ネットワーク漢字フィルター nkf ※macの場合、Homebrew が必要になります。 nkf インストールの手順 まず、nkfがインストールされて…
エラーの内容 記事投稿時にfailed to unmarshal YAM エラーが起こった時の原因について hugo new ファイル名 で…
github pagesでもgoogle adsenseの審査に通過したい! ということで色々先人の方達のサイトをみさせていただいたところ …
サーバーなどを用意するのが手間だなと思う人は、Hugo+GitHubで早く、簡単にサイトを作ってしまうのをオススメします。無料でhttps(SSL)も設定できます。 CMSではWordPressが有名ですが、phpやサーバの準備などに時間がかかってしまったり、ちょっと敷居が高いイメージではないでしょうか。…
hugoで記事を作成して、投稿するためには専用のコマンドを使ってファイルを作成するか、postsなどのディレクトリにmarkdownの.mdファイルを設置する必要があります。今回はhugoでの記事の投稿の仕方を説明いたします。 記事を投稿する hugoで記事を作成して、投稿するためには専用のコマンドを使ってファイルを作成するか、postsなどのディレクトリにmarkd…
Hugoではテーマ(theme)を使って簡単にブログやサイトを作成することが可能です。テーマはGitHubなどにたくさん公開されて簡単に導入…