Skip to content

Instantly share code, notes, and snippets.

@seytwo
seytwo / hxh.py
Created November 14, 2020 06:58
ハンター試験第四次試験を一般化した問題で合格者の最大数を計算
import numpy as np
import pulp
# 参加者数
n = 50
# プレート重み
A = np.random.rand(n, n)
# 合格重み
@seytwo
seytwo / twiceclapgame.py
Last active January 17, 2022 12:11
TwiceClapGame
import numpy as np
import pulp
import random
class TwiceClapGame:
def __init__(self, n):
# 最大チャージ数
self.n = n
# 設定
from itertools import product
import numpy as np
from numpy import linalg as la
from matplotlib import pyplot as plt
import matplotlib.patches as patches
import pulp
def is_q_matrix(M):
# 問題のサイズを取得
import math
from itertools import product, combinations
import numpy as np
from numpy import linalg as la
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.art3d as art3d
color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
n_color = len(color_cycle)
from matplotlib import pyplot as plt
import matplotlib.patches as patches
def show_complementary_cone_2d(M):
# 行列のサイズを取得
n = M.shape[0]
# 各列ベクトルを単位ベクトルに変換
for i in range(n):
import numpy as np
from numpy import linalg as la
def get_rotation_matrix(e1, e2, theta):
R = np.array([
[ np.cos(theta), -np.sin(theta) ],
[ np.sin(theta), np.cos(theta) ]
])
from itertools import product
import numpy as np
from numpy import linalg as la
def bruteforce(q, M):
n = len(q)
I = np.identity(n)
import numpy as np
import pulp
# タイプ一覧(名称)
types_name = [
'ノーマル',
'炎',
'水',
'電気',
'草',
import numpy as np
import pulp
# タイプ一覧(名称)
types_name = [
'ノーマル',
'炎',
'水',
'電気',
'草',
import numpy as np
import pulp
# 行列ゲーム
def solve_matrix_game(A):
n_type = len(A)
lp = pulp.LpProblem(sense=pulp.LpMaximize)
v = pulp.LpVariable("v")
x = [ pulp.LpVariable("x_"+str(i)) for i in range(n_type) ]
for j in range(n_type):