chevron_left

メインカテゴリーを選択しなおす

cancel
パーソナルブログメモリ https://blog.goo.ne.jp/field_light

個人的な簡易記録です。コンピュータ関連をメインでやってます。ようこそ!いらっしゃいませ。

パーソナルブログメモリ
フォロー
住所
未設定
出身
未設定
ブログ村参加

2018/06/05

arrow_drop_down
  • 難問は最後 まとめてかけるか、まとめて割るか、束ねて余りか

    問題を何題も解いているとパターンがあって分類してみたい気にもなったりする。数日前、八次元の距離を求めるという問題を解いて、あんがい人生最大の次元問題かなとか思っていたら早速フラグを立ててしまったようで10億次元のベクトルの内積を求めよという問題に遭遇。ここは出題で同じベクトルが繰り返されるのでそこをまとめてかけるパターンで解く。再帰を使って少し手直ししてみます。今度はプログラミング走行する物体のn歩目の位置を求める問題再帰から作ってみると大失敗日常の計算なら余裕のはずですが、時間しばりもあって、あっさり敗退解き方としてはループを探して、残りの手で割った余りで位置を確定させるパターンルールも微妙にわかりずらく、テストケースも最初数問で概略をマスターできる形式にはなっていない。長手数で自分で計算できなくて、いくつか...難問は最後まとめてかけるか、まとめて割るか、束ねて余りか

  • Python3 listをreplaceする関数

    https://www.codingame.com/training/easy/if-then-elseこの問題を解くためにlistのreplaceが必要になって作成したもの(1〜6行)さらに個別パターン認識して計算をする。問題はifelseでネストしたソースから全てのルートパスを探し出しだすというもの(テストケース数の算出などに使います)そこそこ解き方にも自信があってどうかな?とsubmitしてみる。2行で解いている人たちがいました。Python3listをreplaceする関数

  • Pyxelでシューティングゲームを作ってみる ゲーム作成は根気が大事

    https://github.com/suginoha/pyxel_shootingリバーシより前に作っていたシューティング移動と敵の移動ぐらいを作って、この先どうしたものかと放置玉の処理と当たり判定などを追加した状態がこちらになります。Pyxelでシューティングゲームを作ってみるゲーム作成は根気が大事

  • Pyxelでリバーシを作ってみる

    https://github.com/suginoha/trypyxelpyxelでリバーシを作ってみました。pyxelが動作する環境で、2つのファイルを置いたフォルダを端末で開きpython3h4.pyで起動します気を抜くと、まれに負けます。この画像から修正1つ加えています。ポイントはびっくりするぐらいの不思議なメロディーが流れます。たぶんPyxelでリバーシを作ってみる

  • 妖精のしわざ

    CodinGameのトップページにその人が最後にやった問題がでてくる。右端の問題はい、ときました。TEMPERATURESいや最近まったく解いていない。これは誰か勝手に入ったのか??パスワードを変更ついでにHammingを解く少しして開いてみると...CHUCKNORRISいや最近まったく解いていない。知らない知らないCodinGameなんて、きっと夢さ妖精のしわざさ妖精のしわざ

  • Pyxelを動かすまで ubuntu 2つの環境で試してみる (pipではまった話)

    <デスクトップパソコンA>サイトの通りにインストールしてみる。キャラとサウンドなどを作れるエディタの起動ができないまたnumpyかとアンインストールインストールしても変化なし。サンプルはエラー箇所を少し手直しすると動く(実は6個ぐらい手直ししていました)結論パソコンAの環境はPython3.6と3.7が入っていて(Ubuntuの都合で3.6を削除できない)Python3で実行するとPython3.7が動きpip3だとPython3.6の環境を変えていた。pip3.7でインストールしなければならなかった(以前もどこかでおなじ事をやっていたはず)Python3.7の環境には昔動かせなかったpyxel-1.0.2が残っていた<ノートパソコンB>おさらいに別の環境でもインストールしてみます。Python3のバージョンは...Pyxelを動かすまでubuntu2つの環境で試してみる(pipではまった話)

  • 2重のループを内包表記でたたむ

    多重ループを内包表記にする場合、ループの順番はもとのまま変数のwは使わないので、さらに短くしてみる文字列を先頭から固定長で分割する関数があれば一行にできるのにということで作ってみました。2重のループを内包表記でたたむ

  • 1行で ** を使わずに平方根、立方根を計算する関数 Python3

    defroot(n,rec=100,a=1,c=1):returnaifrec==0elseroot(n,rec-1,a,c/10)if(a+c)*(a+c)>nelseroot(n,rec-1,a+c,c)defcubic_root(n,rec=100,a=1,c=1):returnaifrec==0elsecubic_root(n,rec-1,a,c/10)if(a+c)*(a+c)*(a+c)>nelsecubic_root(n,rec-1,a+c,c)print(root(2),2**0.5)print(root(3),3**0.5)print(cubic_root(2),2**(1/3))print(cubic_root(3),3**(1/3))こんな感じで少しずつまとめてます。作ってみたくなったので...1行で**を使わずに平方根、立方根を計算する関数Python3

  • in list型を使うならin set型のほうが速い

    変わった式に当てはまるパターンを解く問題値が何かの2乗を計算するためにあらかじめ2乗のリストを作っておいてその中にあるかの判定inを使ってみるしかしこの問題時間チューニングしてあって後半の難題がタイムアウトをおこした。ふむ、これ以上のチューニング難しいなと思ってリストを集合型にしてみるとなんとか解けました。(単に0.5乗したものと0.5乗してintにしたものの比較のほうが速いかも)inlist型を使うならinset型のほうが速い

  • 8次元の距離を一行で測る関数

    距離の測定は何次元でもあんまり変わらない。各次元を差を2乗して足していき、最後にその合計を1/2乗する。defd_length(ps1,ps2):returnsum((int(z1)-int(z2))**2forz1,z2inzip(ps1,ps2))**0.5print(d_length("00000000".split(),"1010101010101010".split()))print(d_length(["0"]*1000,["10"]*1000))28.284271247461902316.227766016837968次元の距離を一行で測る関数

  • プログラムの問題を解く過程を5分毎にさらす (方向性をあやまる)

    プログラムの問題を解く経過を5分ごとにさらしてみる。問題文をみてパスファインディングと作り始める。5分データの骨格とおおまかな流れが確定10分パスファインディングの部分を作成15分基本的には、だいたい完成かそもそもこれは長さではなく時間なのでデータ名をごっそり変えていくこの問題で特に問題となるワープの部分も実装少数点の計算は時に小さな誤差を生み出す(以下ははまってしまって、5分ごとではありません。)無駄を削らないといけないらしい小数点計算を減らしたりするが、これだけが解けないチューニングまでって、難しすぎないと思っている。別の解き方を思いつく。普段パスファインディングを多用しているから、逆に迷宮にはまる。しばらく放心して作り直す。宝箱をワープした先にも配置して縦横の距離を測定、斜めは使えたら優先にするだけで解け...プログラムの問題を解く過程を5分毎にさらす(方向性をあやまる)

  • 2009年版のmacbook(OS Ubuntu)に最新の将棋ソフトを入れてみる

    abemaの将棋対局をノートパソコンで見ていてこっちにも将棋ソフト入れてみようかなと開始なんとか動きましたのでその備忘録。<スペック>Intel®Core™2DuoCPUP7550@2.26GHz×2メモリは5GUbuntu18.04.5LTSまず将棋所をダウンロードmonoは入っていたのでそのまま(入っていなければmonoのインストールも必要です)将棋所起動するけどGTKの何かがエラーを出していました。エラーメッセージで検索して、これもインストール(エラーがでていなければ不要)今度はエラーなく起動githubから、やねうら王をダウンロード解凍してsourceフォルダ内にあるMakefileを編集TARGET_CPUをSSE41に変更ここはコンピュータ内のCPUによって異なります。clangも入ってなかったので...2009年版のmacbook(OSUbuntu)に最新の将棋ソフトを入れてみる

  • 影をつける問題を 内包表記、再帰関数、三項演算子、文字列マージ、スクロール などを使って解く

    アスキーアートに影を2つつける問題を解いてみます。マージをテーマに作り始めました。追加で、1つの機能を一行にまとめてみています。(作成中)内包表記、再帰関数、三項演算子少し前はちょっと苦手でしたが、ガンガンつかっていると段々抵抗感がなくなってきました。<解説>7行目戻りfsとbs2つを重ねて、fsがスペースならbsに入れ替え9行目戻り文字列(s)のスペース以外をrsの文字に置き換え11行目戻り文字列の後ろのスペースを削除(再帰関数を3項演算子を使って、一行に)18行目2次元配列を文字列化させたものに、横2、縦2の影のスペース分拡張20行目文字列を斜め下にスクロール(横幅+1のスペースを前に足して、元の文字列の長さ以降はカット)テストケースのレアケース対応にもれがあって11行目空行がくるとエラーになります。影をつける問題を内包表記、再帰関数、三項演算子、文字列マージ、スクロールなどを使って解く

  • 自動文書生成

    Thenthegesturesofourworld,andthelaboursofprecipitouswallsofthesamepeculiarriskwasWeenahadfallen.Weremeretouchofevergreens,thedayoronlineatascoreorre-useittakesadifferencetoeconomisemy....Upon?Day,anideathatthathastyconclusionsuponthebushesallthehousenowmakeouthislifeofhypertrophiedraspberry....MeofthemethodofsocialquestionthatexperienceofthemIcoulddonotthink...自動文書生成

  • フリーの単語集を作る。4794個

    TheTimeMachineから4794個の単語集を作ってみました。目視と簡単なプログラムで記号等が含まれているものはとっています。人名はそのままです。大きすぎてブログに貼れなかったのでgoogleドライブに共有で置いてみました。https://drive.google.com/file/d/1LcffsWjMeuUuqh6AkMTodfHVTy2MlNkt/view?usp=sharingフリーの単語集を作る。4794個

  • Elbow, with you.

    Andthread,andIdonesomethinking.Waterbutclear–MaryWilliamsGeorgeElexanderbeforeyousetstill.Nobody,saysWhatmightfoolmen,maybe.Saiditwouldn’tlethergetsup–Marybefore,soon,tillaftermidnight.Seensenceteno’clocktheheadofasnacktogettingawaybeforenighttheywasasfreeasnoteverybody.Itatlastshegotthebankaboutherarmso.Thelumpofcornered,andwhatisme,andhowmanyofhim.Ain’tgoi...Elbow,withyou.

  • 抽象的の意味を間違えていた話

    レオンハルト・オイラーwikipediaの紹介だと18世紀の数学界の中心となり、続く19世紀の厳密化・抽象化時代の礎を築いたとあります。厳密化が重要というのはBOTプログラムなどを作っているとよくわかるのですが抽象化とははて?間違えていたのは抽象化があいまいなものと思っていた点(実際はそういう意味もある)知らなかったのは物事の本質を抽出するといった意味もある所。下の問題、私は何度も抽象化に失敗しています。まず第一に四角の中の数字縦横斜めで同じ数になると勝手に勘違いしたこと次に数字が横に1から並んでいくと勘違いしたこと最後に螺旋を作って、斜めに計算しようとしたこと(1400x1400クラスのmilkywayだと50msでは無理かも)説明文に紹介されている。2つの図形をしばらく眺めていてふと法則に気が付きました。計...抽象的の意味を間違えていた話

  • 人狼探しの基礎のような4つゲームをたまたま直近で解いた話

    直近で解いた4問が偶然そんな感じだったのでちょっと語ってみます。解いた順番は右からザ・ミケランジェロ・コードワード群の中から文章の中に隠されたもの(1語ずつ等間隔に現れる)を探して、そのワードが隠れている範囲を表示して、隠されたワードを1語ずつ大文字にする。説明がさっぱり頭に入ってこなくて相当苦労した問題です。コーディングもややこしかったですが、読解の難易度が高かったです。キングはチェックされている?(2)こちらは1の時に2があるのかなと、実装を正確にしていたのでコピーして、仕様の変更点、キングのマークをKからkに変更するだけで解けました。(人狼とはちょっとはなれていて、少しこじつけです)マスターメイヘムサイボーグの中に隠れて存在しているメイヘムを探しだします。メイヘムの特徴と各サイボーグの特徴を照らし合わせて...人狼探しの基礎のような4つゲームをたまたま直近で解いた話

  • Python3で素数を作る一行関数

    defprime(n):return[iforiinrange(2,n)iflen([1forjinrange(2,i)ifi%j==0])==0]print(prime(1000))何度も作らされるのでテンプレートっぽいものを作ってみました。実行するとこんな感じになります。prime(n)でnまでの素数を作ります。スピードは遅いですが10000ぐらいまでなら、数秒です。1000は一瞬Python3で素数を作る一行関数

  • 点が三角形の内側にあるか判定するプログラム Python3版

    点が三角形の内側にあるか判定するプログラムを作る問題があって作ってみたルーチン(参考文献の最初にあるプログラムのほぼ移植)内積とか外積、頭が理解してくれないソースはこちらにおいてますhttps://colab.research.google.com/drive/18T4sm6Hqr-fFy3Hqe-x9HUOwAHaMbF2J?usp=sharing<参考文献>点と三角形の当たり判定(内外判定)三角形と外積<蛇足>人生しんどいことが多いけど少しでも前に進もうと思い少し苦手なProjectEularの問題を2問ほど解いてみました。点が三角形の内側にあるか判定するプログラムPython3版

  • Project Eulerをやってみる

    問題の答えは1つの数値それをプログラムで解いていく、人は山があって登り始めると続けてしまうのかもしれない。レベル1までやってみることにした。問題は数学よりで抽象的なものが多く100万まで計算とか多い。正解を入力してもなんかのタイミングか正解と認識しないこともたまにあってこれには困った。間違えると1分まちとかになります。あと、曲がった数字を常に入力させられるのも閉口。レベル1までといっても25問。難易度は高めもっとコンパクトな範囲でサクッと解けたほうがうれしい。Pythonで速度が足りないものはC++で久しぶりに実行ファイルをつくったりもして24時間ぐらいでレベル1オイラーってすごい数学者ということをwikiでみて知る。個人的にこのサイトへの耐性がなさそうなので、たぶんここまで。このサイトでも日本はトップクラスだ...ProjectEulerをやってみる

  • 麻雀のあがったか判定ルーチン VERY HARD問題を解いてみる

    問題手牌が、国士無双と七対子と普通の手の3種類であがっているか判断する。https://www.codingame.com/ide/puzzle/completed-mahjong-hands入力のサンプル(4つ)とルール222888m444p2277z7z333999m555p1133z1z122223567m3555p4p19m199p19s123467z5zmまんず、pピンズ、sそうず、zじはい(麻雀ほぼ知りません)zはシーケンスにはならない東南西北白發中を1から7まで数字をふっています。入力があがっていればTRUEそうでなければFALSEを表示。データ検討辞書型で萬子1,2,3,4,5,6を持っていればj["m"]=[1,2,3,4,5,6]こんなデータ型にする。データ読み込み30行から40行まで入力文...麻雀のあがったか判定ルーチンVERYHARD問題を解いてみる

arrow_drop_down

ブログリーダー」を活用して、パーソナルブログメモリさんをフォローしませんか?

ハンドル名
パーソナルブログメモリさん
ブログタイトル
パーソナルブログメモリ
フォロー
パーソナルブログメモリ

にほんブログ村 カテゴリー一覧

商用