タグ

Programmingに関するBowz13のブックマーク (160)

  • 競技プログラミングで使う有名グラフアルゴリズムまとめ

    0. はじめに AtCoderなどでは、グラフを扱った問題が多く出るが、その度に一から実装していると時間が掛かりすぎてしまうため、有名なものをあらかじめ持っておく必要がありそう。そこで、Pythonを用いて、ダイクストラ法、ベルマンフォード法、プリム法、クラスカル法、ワーシャルフロイド法を実装した。 コメント、意見等ある方は是非! お待ちしてます! 1. ダイクストラ法 1.1. ダイクストラ法(defaultdictで実装) defaultdictで実装すると、リストで実装するよりも、ノード数$N$が大きい際には高速に動作する。ただし、経路復元の関数は、うまく書けなかった......。 (2019/7/6 追記)結局できました。1.1.1. を参照してください。 import collections import heapq class Dijkstra: def __init__(se

    競技プログラミングで使う有名グラフアルゴリズムまとめ
  • 5年間コードを書き続けたエンジニアが、新人に読んでもらいたい11冊+αを紹介する|ハイクラス転職・求人情報サイト AMBI(アンビ)

    5年間コードを書き続けたエンジニアが、新人に読んでもらいたい11冊+αを紹介する 新人エンジニアのうちに読んでおくと役立つ名著やおすすめのを紹介。開発全般やコーディングなどの作法を学ぼう。 某社でサーバサイドエンジニアをしている @ikenyal と申します。開発言語は主にPHP。新卒入社から5年、エンジニアとして働いています。学生時代にもプログラミング、サーバ・ネットワーク構築や運用を経験しました。 これまで、社内外で新卒からベテランまで多くのエンジニアを見てきました。その中で、新人のうちに身につけておいた方が良いだろうと思うものは「お作法」と「基礎知識」です。 プログラミング言語やシステムの専門的な知識は後からでも勉強できます。一方で、さまざまな自己流の癖は時間が経つと身に染みついてしまい、指摘されても直すのが難しくなってしまいます。そのため、新人のときに良いお作法を勉強しておくこと

    5年間コードを書き続けたエンジニアが、新人に読んでもらいたい11冊+αを紹介する|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • bump(他動詞)の意味 - tkrdの日記 (rails や ubuntu のことなど)

    一般的な用法では、他動詞 bump は「ドンとぶつける」という意味でして、 She bumped her head on the low beams. みたいに使います。 インターネットの世界では、日での「アゲる」に相当する言葉で、古いスレッドに何か書き込むことで「板」の中での順位を上げることを意味するそうです*1。 さて、(他の言語の場合は知りませんが)Ruby プログラマーの間では、「(バージョン番号)を上げる」という意味で使われる場合があります。 例えば、コミットメッセージに bump version to 2.0.0.rc と書いてあれば、バージョン番号を 2.0.0.rc に上げた、という意味になります。 *1:http://en.wikipedia.org/wiki/Bump_%28Internet%29

    bump(他動詞)の意味 - tkrdの日記 (rails や ubuntu のことなど)
  • ブラウザから機械語を実行できるWebAssembly用のオンライン開発環境「WebAssembly Studio」を使ってみた

    WebAssembly」は、C言語などで書かれたソースコードをコンパイルして生成されていて高速に処理できる機械語をブラウザで実行できるようにする技術です。Firefoxを開発するMozillaは2018年4月11日、そのWebAssemblyを簡単に開発できるようにするオンライン開発環境「WebAssembly Studio」を公開しました。 WebAssembly Studio https://webassembly.studio/ ブラウザで何か処理を行いたい場合によく使用されるのが「JavaScript」ですが、JavaScriptはコードを一行ずつ処理するインタプリタ言語であり、また変数の型をインタプリタが解釈する動的型付けを行う言語でもあるため、処理速度が遅いという問題点を抱えています。「WebAssembly」はそのような事情を背景に生み出された技術で、ブラウザ上で高速に動作

    ブラウザから機械語を実行できるWebAssembly用のオンライン開発環境「WebAssembly Studio」を使ってみた
  • 画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか?

    手書きのメモをスキャンししたときにどうしても発生してしまうノイズを取り除くとともに、ファイルサイズも減らす方法を、スワースモア大学准教授のMatt Zuckerさんが具体的に公開しています。 Compressing and enhancing hand-written notes https://mzucker.github.io/2016/09/20/noteshrink.html Zuckerさんが持つクラスの中には教科書を使用せずに行うものもあり、そうした場合Zuckerさんは「学生書記官」を任命してノートを取ってもらい、スキャンしてアップロードするそうです。 例えば、以下の画像のようなページをスキャンする場合を考えてみます。この画像は300DPIでスキャンされており、約7.2MBのPNG形式で保存されています。それを画質85でJPGに変換すると約790KBになりますが、1ページで7

    画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか?
  • プログラマが知るべき97のこと

    プログラマが知るべき97のこと大人気の書籍『プログラマが知るべき97のこと』のエッセイを無料で公開中!すべてのプログラマにおすすめのがウェブで読めるようになりました。 エッセイ一覧分別のある行動関数型プログラミングを学ぶことの重要性ユーザが何をするかを観察する(あなたはユーザではない)コーディング規約を自動化する美はシンプルさに宿るリファクタリングの際に注意すべきこと共有は慎重にボーイスカウト・ルール他人よりまず自分を疑うツールの選択は慎重にドメインの言葉を使ったコードコードは設計であるコードレイアウトの重要性コードレビューコードの論理的検証コメントについてのコメントコードに書けないことのみをコメントにする学び続ける姿勢誰にとっての「利便性」かすばやくデプロイ、こまめにデプロイ技術的例外とビジネス例外を明確に区別する1万時間の訓練ドメイン特化言語変更を恐れない見られて恥ず

    プログラマが知るべき97のこと
  • アルゴリズムをビジュアル表示できコードでも確認できるサイト「Algorithm Visualizer」 - GIGAZINE

    アルゴリズムをプログラムで表示した場合、アルゴリズムの概念自体が複雑な上に抽象的なコードのせいもあって、実行されるアルゴリズムのプログラムをイメージするのは難しいものです。そんな抽象的なアルゴリズムのプログラム学習には、コードだけでなく、実際にプログラムを走らせるときのログを表示しつつ、アルゴリズムをビジュアル化してくれる「Algorithm Visualizer」が非常に役に立ちます。 Algorithm Visualizer https://algorithm-visualizer.org/ Algorithm Visualizerは、バブルソートやバイナリーサーチ(二分探索)などのアルゴリズムを、プログラムとして表示させつつ、実際に実行した場合の動きを可視化したりログ化したりすることで、アルゴリズムの理解を深められるサービスです。 ページ左にアルゴリズム名がずらりと並んでおり、選択し

    アルゴリズムをビジュアル表示できコードでも確認できるサイト「Algorithm Visualizer」 - GIGAZINE
  • DOSプロンプト

    フォーマット指定子一覧 フォーマット指定子とは、C言語のprintf()、fprintf()、sprintf()、scanf()、fscanf()、sscanf()などの関数で使用する、 表示形式を指定するための記述子である。 C言語専用と思っていると、MFC(C++)のCStringクラスやjavaFormatterクラス(jdk1.5以降)にも使用されていたりして、 やはりしっかり覚えておかなくては、と思わせられることもある(詳細は異なるが)。 度忘れした際にはここを見ればよいように、よく使うフォーマット指定子をここにまとめておく。 なお、ANSI規格での全貌を知りたいときは、fprintfのリファレンス等を参照のこと。 出力フォーマット指定子 printf(),fprintf(),sprintf()などで使用する指定子である。

  • Swiftを使ってテトリスをつくる方法を丁寧に解説したサイト「Swiftris」 | ソフトアンテナ

    オンラインのプログラミング学習サイトBLOCが、Swiftを使ってテトリスを作成する方法をステップ・バイ・ステップで解説した無料サイト「Swiftris」を公開しています(公式ブログ)。Free eBookとありますがPDF形式の電子書籍などがダウンロードできるわけではなく、学習用Webサイトに無料アクセスできるようになる仕組みのようです。 ↑目次です。 オンライン学習サイトの教材(?)だけあって、解説は丁寧で分かりやすそう。Swiftのビッグウェーブに乗って行きたい方はどうぞ。

    Swiftを使ってテトリスをつくる方法を丁寧に解説したサイト「Swiftris」 | ソフトアンテナ
  • 標準教科書シリーズ お問い合わせ窓口

    標準教科書シリーズ お問い合わせ窓口

    標準教科書シリーズ お問い合わせ窓口
  • VisuAlgo moves to https://visualgo.net/en

    Redirecting you to https://visualgo.net/en

    Bowz13
    Bowz13 2014/08/23
    アルゴリズム学習サイト。アルゴリズムがどういう処理を行っているのかを可視化して解りやすくなっている。
  • OffScreen

    中級編3です。今回はMacで必ずといっていい程、使用されるグラフィック、それもオフスクリーンの初歩について説明します。 ◆仮想画面(オフスクリーン)とは 仮想画面(オフスクリーン)というのは、メモリ内部に確保された見えない画面、つまり仮想的な画面です。ゲームなどには結構使われるのですが、オフスクリーンについて丁寧に書かれたが少なかったりして苦労する人も多いのではないでしょうか? オフスクリーンの使い方が分かれば、作るプログラムの幅が一気に拡大します。とは言っても大事なのは元ネタ。でも、アイデアを実現するだけの技術も必要ですね。 今回は仮想画面(オフスクリーン)の作り方、描画の仕方、転送の仕方、仮想画面(オフスクリーン)の廃棄についてそれぞれ説明します。 ◆仮想画面の作り方 仮想画面(オフスクリーン)を作るのは実は簡単です。まず、グローバル変数の宣言で次のようにしておきます。 DIM of

    Bowz13
    Bowz13 2014/08/18
    仮想画面(オフスクリーン)というのは、メモリ内部に確保された見えない画面、つまり仮想的な画面です。
  • Let's Enjoy Future BASIC

    Future BASIC II-Jの解説ページです。今年、やっと待望のFB3日語版が出ます。変数の255文字の制限もなくなって68K,PPCアプリどちらでも作成OK。N88 BASIC エミュレータも付いていたり(^^; 「今日からマックプログラマーFuture BASIC IIでGO!!」発売中! ダウンロードページからFB講座をダウンロードできます。 Last Update : 2000/8/1 変数について Future BASIC II-Jマニュアルの誤字脱字ミス一覧 Future BASICのプログラム構造 プログラムの組み立て方 Future BASIC (II)リファレンス CD-ROMサンプルプログラム一覧 Future BASIC命令一覧 Macintoshキーマップコード一覧 INCL,GLBLヘッダー圧縮ファイル 625KB(Pascal Converterで変換し

  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは、お名前.comで取得されています。 お名前.comのトップページへ Copyright © 2020 GMO Internet, Inc. All Rights Reserved.

    dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Google Objective-Cスタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • FINDJOB!終了のお知らせ | FINDJOB!

    FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ

    FINDJOB!終了のお知らせ | FINDJOB!
  • jsdo.it

    Come creare il miglior gioco da casinò Quando si progetta un gioco da casinò, la prima cosa che devi considerare è che tipo di gioco sarà. Ci sono molti diversi tipi di giochi da casinò, dalle slot e video poker ai giochi da tavolo e giochi di carte. Dovrai decidere quale tipo di gioco si adatta meglio alle tue esigenze. Ogni tipo di gioco ha il proprio set di regole e regolamenti, quindi dovrai a

    Bowz13
    Bowz13 2014/08/08
    Javascriptのコード公開サイト
  • wonderfl build flash online

    wonderflは、サイト上でFlashをつくることのできるサービス。 通常Flashをつくるためには、Flash IDEやFlex、FlashDevelop等といったツールを使って、コードを書き、コンパイルする必要がありますが、wonderflでは、サイトにあるフォームにActionscript3のコードを書けば、サーバサイドでコンパイルを行えます。 つまり、ブラウザさえあれば、Flashをつくれます。コンパイル結果はサイト上に表示され、作成されたFlash(swf)はページ上に自動的に表示されるので、完成したFlashをリアルタイムに見ながらコードを書くことができます。 ※APIとして、はてな OpenIDを使用してネットにさえつながれば、誰もがFlashクリエイターになれます。世界中のFlashクリエイターがユーザーになるwonderflは、 文字通り、世界のFlash図鑑となってい

    wonderfl build flash online
    Bowz13
    Bowz13 2014/08/08
    ActionScriptのソースコード共有サイト
  • 多重定義 - Wikipedia

    「オーバーローディング」はプログラミング言語の仕組みについて説明しているこの項目へ転送されています。その他の用法については「オーバーロード」をご覧ください。 多重定義 (たじゅうていぎ) あるいは オーバーロード (英: overload) とは、プログラミング言語において同一の名前(シンボル)を持つ関数あるいはメソッドおよび同一の演算子記号について複数定義し、利用時にプログラムの文脈に応じて選択することで複数の動作を行わせる仕組みである。 例えば整数型や浮動小数点型、複素数型の値について同じ「abs」という関数を定義して絶対値を求める、型ごとに個々の意味で名前やIDを返す関数を定義するなどが挙げられる。多重定義する対象に応じてそれぞれ関数の多重定義[注釈 1]、演算子の多重定義[注釈 2]、メソッドの多重定義[注釈 3]と呼ばれる。メソッドの多重定義の特殊なケースとして、コンストラクタの

    Bowz13
    Bowz13 2014/08/08
    多重定義、overrideとは異なる