ABC283で強制unratedの対象になった理由
### はじめに
[ABC283](https://atcoder.jp/contests/abc283)において、強制的にunratedとなった218人の内の一人になりました。
atcoderが強制unratedの措置を行った理由は、D問題において不正なテストケースが使われたとのことで、強制unratedは**不備のある該当テストケースのみにおいて、他と違うジャッジステータスが出てしまっている**参加者のみが対象だということです。[^1]
[^1]:https://atcoder.jp/posts/951
この記事では、私が強制unratedになった理由、具体的にはD問題において不正なテストケースにだけREしてしまった理由を説明します。
### D問題
問題文は https://atcoder.jp/contests/abc283/tasks/abc283_d にありますが、少し長いので、ここでは記事の趣旨を優先させて詳細は省きます。
まず、この問題では唯一の入力として文字列Sが与えられます。Sは英小文字と丸括弧`(`,`)`からなる文字列で、そして、**丸括弧は正しく閉じら
[Netlify で UNSUPPORTED BUILD IMAGE となって困ったら](https://qiita.com/ganessa/items/36e128e2f1854ea4ed24)を対応すると以下のような出力となり、ビルドに通らなくなってしまいました。
“`
10:51:09 AM: /opt/build-bin/run-build-functions.sh: line 351: /opt/buildhome/python3.7/bin/activate: No such file or directory
“`
[Included Software](https://github.com/netlify/build-image/blob/focal/included_software.md)を確認すると、以下のようになっていました。
“`
Python – PYTHON_VERSION, runtime.txt, Pipfile
3.8 (default)
2.7
“`
以下のように変更すると、無事ビルドが通りました。
“`diff:runtime
# 結論
“`python
import pptx, re
from pptx.util import Cm, Pt, Inches
self.replace_text(‘置き換えられる文字列’, ‘置き換える文字列’)
def replace_text(self, before, after):
for shp in self.slide.shapes:
if shp.has_text_frame:
if before in shp.text:
new_text = re.sub(before, after, shp.text)
self.replace_paragraph_text_retaining_initial_formatting(shp.text_frame.paragraphs[0], new_text)
def replace_paragraph_text_retaining_initial_formatting(self, paragra
Python
PowerPoint
python-pptx
# 結論
“`python
self.draw.font.getsize(‘string’)
↓
self.draw.multiline_textbbox([0, 0], ‘string’) #の2,3番目
“`
# getsize
“`python
self.draw.font.getsize(‘string’)
>> (138, 44)
“`
# multiline_textbbox
“`python
self.draw.multiline_textbbox([0, 0], ‘string’)
>> (0, 9, 138, 44)
“`
# 参考
https://pillow.readthedocs.io/en/stable/reference/ImageFont.html#PIL.ImageFont.FreeTypeFont.getsize:~:text=%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E3%82%BF%E3%83%97%E3%83%AB-,getsize,-(%20te
# 目次
[1.はじめに](#1-はじめに)
[2.自己紹介](#2-自己紹介)
[3.本テーマに至った経緯](#3-本テーマに至った経緯)
[4.モデル制作](#4-モデル制作)
[5.HTML,CSS制作](#5-HTML,CSS制作)
# 1. はじめに
AIプログラミングに興味を持ちスクールで学ぶことにしました。
そこで学んだことの一部をまとめたいと思います。
# 2. 自己紹介
私はAIプログラマーへの転職を考えておりAidemyさんで学ぶことを決めました。プログラミングをそれほどしたことがなかったのでほぼゼロから学んでみました。
# 3. 本テーマに至った経緯
ディープラーニングでは音声や画像の認識、自然言語処理などの分野で発展がめざましく、これらの技術は企業のDX、セキュリティー、自動運転、医療など様々な応用の可能性があります。私にとってはどれも魅力的でありいろいろやってみたいのですが、今回は画像処理のセマンティックセグメンテーションについてその手法も探りながら開発してみたいと思います。セグエンテーションの例を示します。
![seq_ex2.png](htt
## [jsonl](https://jsonlines.org/)とは
改行区切りの1レコードがjsonになっているデータのことです。
こんなデータ↓
“`json
{“name”: “Gilbert”, “wins”: [[“straight”, “7♣”], [“one pair”, “10♥”]]}
{“name”: “Alexa”, “wins”: [[“two pair”, “4♠”], [“two pair”, “9♠”]]}
{“name”: “May”, “wins”: []}
{“name”: “Deloise”, “wins”: [[“three of a kind”, “5♣”]]}
“`
## pandas使わない方法
### ファイル読み込み
“`python
import json
with open(‘hoge.jsonl’) as f:
jsonl_data = [json.loads(l) for l in f.readlines()]
“`
### ファイル出力
“`python
with open(‘fuga.jsonl
# はじめに
[前回](https://qiita.com/kkawano_neko/items/d7be826d7bb97400bf4e)PythonからAzure AutoMLを使ってトレーニングを行いました。今回はトレーニングしてできたモデルをデプロイしてみようと思います。
# 開発環境
+ OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
+ Visual Studio Code 1.73.1
+ Python 3.9
# モデルの登録
まずは前回トレーニングしたジョブの中で一番精度が良いモデルのパスを取得します。
そのためにはまずジョブの名前(ジョブID)、モデル名が必要となります。
## ジョブIDの取得
前回のトレーニング時にジョブの返り値をprintするようにしていました。
“`train_model.py
returned_job = ml_client.jobs.create_or_update(classification_job)
print(f”Created job: {retur
Python
Azure
機械学習
AI
AutoML
https://paiza.jp/works/mondai/array_primer/array_primer__fibo
解らなかったです。。。
#### 解答例
“`Python3
N = int(input())
fibo = [0] * N
fibo[0] = 0
fibo[1] = 1
for i in range(2, N):
fibo[i] = fibo[i – 2] + fibo[i – 1]
for ele in fibo:
print(ele)
“`
https://paiza.jp/works/mondai/array_primer/array_primer__array_distance_step2
#### 私の解答
“`Python3
N, A, B = map(int,input().split())
X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i] = int(values[0])
Y[i] = int(values[1])
print(abs(X[A-1] – X[B-1]) + abs(Y[A-1] – Y[B-1]))
“`
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
A = int(values[1])
B = int(values[2])
X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i]
https://paiza.jp/works/mondai/array_primer/array_primer__array_distance_step1
#### 私の解答
“`Python3
n = int(input())
for i in range(n):
values = input().split()
ans = abs(int(values[0]) – 2) + abs(int(values[1]) – 3)
print(ans)
“`
#### 解答例
“`Python3
N = int(input())
X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i] = int(values[0])
Y[i] = int(values[1])
for i in range(N):
print(abs(X[i] – 2) + abs(Y[i] – 3))
“`
子供(小学2年生)の冬休みの宿題として
「__掛け算九九の各段について、ランダムに並び替えた数字の順で間違えないように暗唱する__」
というものがあり、その「ランダムな数字の順」を考えるのが面倒なので、Pythonにやらせてみようと思ったのが事の発端です。
(Qiita様と投稿者の皆々様のエントリには常日頃お世話になっており、何かひとつ投稿してみたいと考え、当エントリを作成しました)
# 1.整数リストをランダムに入れ替えるスクリプト
最初に作ったのは「1から9までのリスト」をランダムに並び替える関数でした。
作っているうちに欲が出て「リストを違うパターンで並び替えて出力する」仕様も追加しました。
“`RandomList.py
import sys
import random
import copy
def random_list(repeat=1, num=10):
# 1からnumまでのリスト
numbers = list(range(1,num))
# 繰り返し
numbers_list = []
i = 0
while
Python
初心者
学習
PySimpleGUI
https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step2
#### 私の解答
“`Python3
n, k = map(int,input().split())
a = list(map(int, input().split()))
for ele in a:
if ele >= k:
print(ele)
“`
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
K = int(values[1])
A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])
for a in A:
if a >= K:
print(a)
“`
https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step1
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
for ele in a:
if ele >= 5:
print(ele)
“`
#### 解答例
“`Python3
N = int(input())
A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])
for a in A:
if a >= 5:
print(a)
“`
https://paiza.jp/works/mondai/array_primer/array_primer__array_minmax
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
print(max(a), min(a))
“`
#### 解答例1
“`Python3
N = int(input())
A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])
sorted_A = sorted(A)
print(sorted_A[N – 1], sorted_A[0])
“`
#### 解答例2
“`Python3
N = int(input())
A = [int(x) for x in input().split()]
print(max(A), min(A))
“`
# はじめに
ここは、Pythonを改めて学んでいるメモを都度書き出していきます。
※ 筆者のバックグラウンドは#1をご覧ください。
https://qiita.com/hideh_hash_845/items/58241f0ce0283e457a87
# 文法の気づき2
## リスト
– indexは0オリジンで、マイナス指定も可(Perlと同じ)
– リストの長さは`len()`
– 末尾に追加する時は`append()`
– 要素削除時、index指定なら`del()`, 内容指定時は`remove()`
– スライスができるが、後のindexは「最後の要素」ではなく「最後の要素の一個前」
~~~
my_list=[“hoge”, “huga”, “moga”, “aaa”, “bbb”, “ccc”]
my_list[1:3]
# [“huga”, “moga”]
# “aaa”は含まれない!
~~~
## タプル
– タプル=イミュータブルなリスト
– 要素の変更(代入・追加・削除・並び替え)ができない
– 書き換えてほしくないデータを安全に扱うことができる
– スラ
https://paiza.jp/works/mondai/array_primer/array_primer__deduplication
#### 私の解答
“`Python3
li = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]
new_li = []
for ele in li:
if ele not in new_li:
new_li.append(ele)
sorted_new_li = sorted(new_li)
for ele in sorted_new_li:
print(ele)
“`
#### 解答例
“`Python3
li = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]
li_set = set(li)
sorted_li_set = sorted(li_set)
for ele in sorted_li_set:
print(ele)
“`
set(li)で重複の削除を行うことを覚えました。