配列やグリッドの初期化

 

 

基本

 [[0] * i for _ in range(j)]

 

リスト[0]に対して掛け算

[0] * 2 

→ [0,0]

リストの中身がくりかえされて2個になる

 

 

ところが、

[[0]* 2] *3 としてしまうと

0,0*3

→中身[0,0]が繰り返されるが、これはミューターブルなオブジェクトなので、同じオブジェクトを参照する

 

 

 

 

ジェ子ビッチの生まれ変わる食事_読書メモ

 

同じ症状に心当たりがある。

- 運動中に鼻がつまり、呼吸が苦しくなる

 - ジョコビッチも鼻の手術もしたらしい

- 朝起きた時に、もやがかかっている

- 10代の頃の鼻詰まり。

 

ELISAテスト

- 小麦と乳製品、トマトに不耐性があった

 

14日間グルテンフリーの食事をして、その次の日にベーグル食べてみる

→10代の頃のように、朝起きてベッドを這い出るのがやっと。鼻詰まりも。

グルテン不耐症だった

 

 

マジック

- 左手お腹

- 右腕まっすぐのばす。上から押してもらって反発。

-左手のお腹の前でパン(携帯電話)持って、同じことすると、弱くなる。 

 

 

 

ゆっくりと食べる

- 口の中で本来分解すべきものまで、胃に行くので体に負荷がかかる。

 

エネルギーを取るための食事(朝/昼)

- 炭水化物

- 糖分(フルーツ)

 

体を修復するための食事

- 肉、魚(タンパク質)

 

 

OKなもの

- ナッツ、肉、魚、卵、豆、米、蕎麦(100%)、白滝

-オイルはなるべく、オリーブオイル、ココナツオイル、アマニ油

- 味噌や醤油は実はダメらしい。溜まり醤油ならOK

- 朝食(パワーボウル)

- 昼食()

 

何があっても毎日11:00~12:00に間にベッドに入る

 

 

 

NG

- 小麦

- ソーセージとか缶詰とかの加工食品系にもこっそり入ってたりするので注意

- 揚げ物の衣は全て小麦

- シリアル

- プレッツェルやスナック

- ビールその他麦芽から作った飲料

- 加工チーズ

- ホットココアミックス

 

「私たちは得るもので生活するが、与えるもので人生を形作る」

周囲の人に与えれば与えるほど、魂は大きく成長する。

 

 

16時間起きていて、そのうち14時間は、テニス、テニスのためのトレーニング、食事、に使っているので、テニスに秀でていることができる。

 

フォームローリング

筋膜を柔らかく。痛みがあるところがあれば、そここそが鍛えるべき場所。

テニスボールでも可。

 

 

 

朝にスプーン2杯のハチミツ。

open() close()

Pythonでファイルを開いた後に`close`する必要がある理由はいくつかあります:

1. **リソースの解放**:
   - ファイルを開くと、システムリソース(例えばファイルディスクリプタ)が使用されます。`close`メソッドを呼び出すことで、これらのリソースが解放され、他のプロセスやプログラムがファイルを利用できるようになります。リソースの不足は、ファイルのオープンや書き込み、読み込みに影響を及ぼす可能性があります。

2. **データの確実な保存**:
   - ファイルに書き込んだデータは、`close`メソッドを呼び出すまで、必ずしもディスクに書き込まれているわけではありません。`close`メソッドは、バッファに溜まっているデータをディスクにフラッシュ(書き込み)します。これを行わないと、書き込み内容が失われる可能性があります。

3. **ファイルの整合性**:
   - ファイルを適切に閉じることで、ファイルシステムがそのファイルの状態を正しく管理します。ファイルが正しく閉じられないと、データが破損したり、読み書きの競合が発生したりする可能性があります。

4. **ファイル操作の管理**:
   - `close`メソッドを呼び出すことで、ファイルが閉じられ、そのファイルに対して追加の操作ができなくなります。これにより、ファイルハンドルを無駄に保持し続けることなく、コードの管理が容易になります。

これらの理由から、ファイルを扱う際には、できるだけ早くファイルを閉じることが推奨されます。Pythonでは、これを簡単に管理するために、`with`ステートメント(コンテキストマネージャ)を使用するのが一般的です。`with`ステートメントを使用すると、ファイルを開いた後、自動的にファイルが閉じられます。例えば:

```python
with open('example.txt', 'r') as file:
    content = file.read()
    # ファイル操作
# ここでファイルは自動的に閉じられる
```

この方法を使うと、手動で`close`を呼ぶ必要がなく、コードがより安全でクリーンになります。

NoSQL

www.youtube.com

 

- テーブルとしてデータを保持するんじゃなくて、オブジェクトみたいな感じで持っておく

- メリット

    - 後からスキーマを足したりできる

 - 食べログで、最近できた店にだけ騒音状況足す、とか

- デメリット

 - クエリ書いても欲しいデータが来るとは限らないから、チェック処理が必要になる

   - しかしこれはアプリが最新版じゃないユーザーとかがいるから普段からやってるでしょ?

 

SQLがないから、ある部分から必要な情報取ってきて、別の部分の情報と組み合わせて、、みたいなことができない

→代わりに、複数の情報をまとめて取ってこれる場所にまとめて置いておく

 

例)

- 食べログで、レビューの情報と、レビュー書いた人の名前/アイコンを出したい

- RDBでは、ユーザーとレビュー情報は分けるが、NoSQLでは、レビュー情報の方にもユーザーの名前とアイコンの情報を入れておく。

- 同じ情報が複数箇所にあるなんて!と思うかもしれないが、それで困るのって、データを更新するときに、更新もれが起きるリスクとかだけど、更新なんて高々年1回。データは読まれることの方が多い。(私は年一しかプロフ画像変えないが、私のレビューは毎日何人も読む) NoSQLならjoinとかいらないから爆速でデータ返せて、最高。

 

 

 

  

 

 

 

指数関数的バックオフ

  • サーバーへのアクセス集中への対策方法の一つとして使われるアルゴリズム

  • リクエストが失敗したら、少し待ってからリクエストし直す、という方法。(ただしこの待ち時間は毎度指数関数的に増やす。)

    • 2秒まってやり直し、4秒まってやり直し、8秒まって、、
  • 嬉しさ
    • クライアントが送れるリクエスト頻度を固定値で決める方法と比べ、サーバーの忙しさ具合に合わせて動的にリクエスト減らせる

en.wikipedia.org

ど田舎うまれ、ポケモンGOをつくる_読書メモ_20240414

  • 上島珈琲勉強→ランチから帰った後、ポストに入っていた本書を読み始め、数時間で一気に読んでしまった。
  • 自分が作ったデモがその後プロダクトになって、ってのはやっぱり最高だなと。
  • デモ力上げたい。が、急がば回れで基礎をやろう。
  • キューバで時間を持て余してそうだった人達、インドでの発展途上なインフラ・生活水準で暮らしている人たち、ボリビアでろくに酸素すらない場所で暮らす人たち、今まで見てきた色んなことを思い出した。3食困らず栄養のあるものが食べれて、さらにはいくらか自分で自由に使える時間とネットへのアクセスがあるのに、ダラダラしている場合ではないな、などと。

以下メモ

  • Googleマップドラクエ化や、ポケモン探し化などのエイプリルフール企画をやり、その後ポケモンGOのPdMになった人

  • 10歳ほどしか離れてない人なのに、レンガで作った家に住めず、泥とわらで作った家に引っ越して、米がなくトウモロコシの粥を食べていた話はショッキングだった。(親戚伝いでなんとか日本に。その後も貧しい中苦労して国立の信州大に。)

  • p82. 大学ではアプリの作り方のような実践的なことよりも、プログラムが動く理論や原理を学ことが重要。見たことのない問題に突き当たった時に限界がきてしまう。一見早道に見えるが、基礎をやるべき。料理番組ばかり見て料理できるようになるより、なぜこの素材とこの素材を組み合わせるのか、素材の栄養価はどうなっていて、どんな場面/季節で作るのが適切なのかを学ぶべき。

  • p126 情熱を追いかけろ。これをやれば就職に有利、だとか将来稼げる、だとか、そんなことは気にしていなかった。自分の興味が向くにまかせて動いていた。その時々夢中になっていたことに情熱を燃やしていた。今も好きなことを続けていられるのは、いつも本気で目の前のことに取り組んでいたからだと思う。

  • バイトばかりするな。1200円で20歳の時間を買えるならぜひ買いたい。ということは未来の君も買いたいはずなのだから、未来の自分から借りるつもりで奨学金を借りて、その分の時間を、どんなことでも良いので、好きなこと、情熱を持っていることに使おう。

  • 同僚との立ち話から、その日の夜中に2-3時間でデモを作って、次の日にドラクエGoogle mapのデモ。デモは何よりも人を引きこみ、動かす力がある。

  • 英語の勉強はとにかく話すこと。次に、同じ内容の映画を英語字幕で何度も見ること。知らない単語が出るたびに止める。(なんとなく意味がわかっても。)セリフを覚えるくらい続ける。その映画に出てくる言い回しを自分のものにする。小説を読むときは、わからない単語があってもスキップする。

  • 世の中には本当に今日の食べ物に困っている人が大勢いる。職業選択の自由がある人はほんの一握りだし、新しいことに挑戦できる人はほんのわずか。チャレンジしないことは悪いことではないが、本当にもったいない。日本に住んでいたり、新しいことに挑戦できる環境にいたりすることは、この上なく幸運なこと。恐れず挑戦しよう!

疑問集

# for文は改行しなくてもいいのか?

 何故これが動く?

 



 

 

 

# 確率の問題

nCr / nCr でも確率出せるけど、nPr /nPrでも同様に出してよかったはず?

本当によかったのか整理する

algo-method.com

 

 

# input()の処理はそれだけをまとめて行った方が速い?

algo-method.com

これだとTLE

 

# まだTLEな箇所がある
# 先に、Pごとに、満たす整数x,yのくみが何個あるか数えておく


num_couples_to_make_p = [0 for _ in range(10001)]


for x in range(-100,101):
for y in range(-100,101):
p = x**2 + y**2
if p <= 10000:
num_couples_to_make_p[p] += 1

Q = int(input())

for _ in range(Q):
P = int(input())
print(num_couples_to_make_p[P])

 

 

これが正解

# 入力を受け取る
Q = int(input())
P = [0 for _ in range(Q)]
for i in range(Q):
P[i] = int(input())

pmax = 10**4 # P の最大値
counter = [0 for _ in range(2*pmax+1)] # counter[v] : x^2 + y^2 = v を満たす整数組 (x, y) の個数
# 必要な範囲だけ全探索
for x in range(-100, 101, 1):
for y in range(-100, 101, 1):
v = x * x + y * y
counter[v] += 1

# クエリに対する答え
for i in range(Q):
p = P[i]
print(counter[p])

なるほど?