[GO] Tohoku University 2020 Early Mathematical Exam (Science) Ich habe versucht, die großen Fragen 1 bis 3 mit Python zu lösen

Schön dich kennenzulernen, das ist MatLaser! Dies ist Qiitas erster Gedenkbeitrag, danke! Normalerweise benutze ich Python für Forschungszwecke, aber seit kurzem interessiere ich mich für verschiedene Technologien und lerne nach und nach. Ich wollte diesen Beitrag schon immer einmal machen, und GW hat Zeit, also habe ich ihn als gute Gelegenheit geschrieben. Ich denke, dass es aufgrund mangelnder Fähigkeiten und Kenntnisse ineffiziente Codierungen und Missverständnisse gibt, aber da es für Anfänger geschrieben wurde, um es auszugeben, hoffe ich, dass Sie es mit warmen Augen sehen können.

Bitte lesen Sie das PDF der Fragen und Antworten hier. Auch in diesem Artikel werden wir grundsätzlich nach der Lösung der Antwort codieren.

Problem Antwort 1,4,5,6 Antwort 2,3

Erste Frage

(1) Sie verwenden einfach den Kosinussatz.

(2) Durch richtiges Einstellen der Koordinaten der drei Punkte A, B und C kann die Existenz der Variablen $ s $ nur auf die $ y $ -Koordinaten des Punktes P eingestellt werden, was die Berechnung etwas erleichtert.

Unten ist das Antwortbild. スクリーンショット (120).png

Lassen Sie uns codieren.

1.py



#Anfangsbedingungen
ab = 1
ac = 1
bc = 0.5

import numpy as np

# (1)
#Kosinussatz
cos_theta = (ab**2 + ac**2 - bc**2) / (2 * ab * ac)
sin_theta = np.sqrt(1 - cos_theta**2)
print(cos_theta, sin_theta) # 0.875 0.484 = 7/8 (√15)/8

# (2)
# func = AP^2 + BP^2 + CP^2
def func(s):
    return 25/32 + 15/64 * ((3 * (s - 2/3)**2) + 2/3)

lis = [] #Eine Liste, in der der Wert der Variablen s und der Funktion zu diesem Zeitpunkt als Taple gespeichert ist

# 0<s<1 bis 0.Ändern Sie bis 01 und suchen Sie alle
for s in np.arange(0,1,0.01):
    value = func(s)
    lis.append((s, value))

print(lis)
# min_Nach Wert sortieren und das erste Element ausgeben
lis_sort = sorted(lis, key=lambda values: values[1])
print(lis_sort[0]) # (s, min_value) = (0.67, 0.9375)

Zweite Frage

(1) Sie können gehorsam den Schnittpunkt der Geraden L und M finden und den Kreis C ersetzen.

(2) Das Thema ist erfüllt, wenn der Abstand zwischen dem Mittelpunkt des Kreises C und der Geraden L kleiner als der Radius (a) des Kreises C ist.

(3) Ähnlich wie in (2) können Sie die Anzahl der gemeinsam genutzten Speicher ermitteln, indem Sie den Abstand zwischen dem Punkt und der geraden Linie und den Radius des Kreises C vergleichen und dann ehrlich nachschlagen. Dies ändert nur die Ungleichung in (2), daher werde ich sie weglassen.

Unten ist das Antwortbild. スクリーンショット (121).png

Lassen Sie uns codieren.

2.py



import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
a = sympy.Symbol('a')

# (1)
expr1 = -4 * x + 3 * y + a
expr2 = 3 * x + 4 * y - 7 * a
d = sympy.solve([expr1, expr2], [x,y])
# print(d) #Der Schnittpunkt der Geraden L und M.(a, a)ich verstehe

#Im Kreis C (a,Ersatz a)
sympy.var('x, y, a')
x = d[x] #Ersetzen Sie x durch die x-Koordinate des oben erhaltenen Schnittpunkts
y = d[y] #Ersetzen Sie y durch die y-Koordinate des oben erhaltenen Schnittpunkts
sol = sympy.solve (1 * x**2 - 2 * a * x + y**2 - 4 * y + 4, a)
sympy.init_printing()
print(sol) #Erhalten Sie eine Liste mit Antworten (diesmal nur 1)

# (2)
#Die Lösung der Ungleichung kann der Typ des Intervalls mit Intervall sein und die Summe sollte genommen werden, diesmal endet sie jedoch mit dem Finden des Grenzwerts aus der Gleichung.
dis = abs(6 - 3 * a)/5
# dis^2 = abs(a)Beide Seiten quadrieren und lösen
expr3 = 16 * a**2 + 36 * a - 36
d2 = sympy.solve([expr3])
print(d2) # [{a: -3}, {a: 3/4}]Grenzwert, bei dem sich die Anzahl der freigegebenen Speicher ändert

# (3)
#Kürzung

Dritte Frage

(1) Wenn ich mir die Problemstellung anschaue, denke ich, dass mir die folgenden drei Lösungen in den Sinn kommen. ・ Mathematische Reduktionsmethode ・ Herleitung der Ungleichung durch Formeltransformation ・ Funktionalisierung: $ f (n) = 3 ^ n- (2 ^ n + n ^ 2 + 8) $, und $ n ≧ 3 $ gibt an, dass $ f (n)> 0 $ ist Die Antwort verwendet die mathematische Regressionsmethode, aber aus der Perspektive der Lösung durch Programmierung denke ich, dass die Funktionalisierung am einfachsten ist.

(2) Da (1) zeigt, dass $ n ≧ 3 $ und $ f (n)> 0 $ sind, ist für $ f (n) ≦ 0 $ mindestens $ n <3 $ erforderlich. Muss sein. Da $ n $ diesmal eine positive ganze Zahl ist, können wir auch sehen, dass $ n = 1,2 $ eine Kandidatenlösung ist. Sobald Sie dies wissen, müssen Sie nur noch ersetzen und prüfen, ob das Thema zutrifft.

(3) Da $ a, b, n $ alle 0 oder mehr sind, gilt die Gleichung $ 2 ^ n + n ^ 2 + 8 = 3 ^ n + an + b $ für $ n = 1 $ oder $ 2 $ Nur.

Unten ist das Antwortbild. image.png

Lassen Sie uns codieren.

3.py



# (1)
import math

# f(n)
def func(n):
    return 3**n - (2**n + n**2 + 8)

# f'(n)
def func_p1(n):
    return 3**n * math.log(3) - (2**n * math.log(2) + 2 * n)

# f''(n)
def func_p2(n):
    return 3**n * math.log(3)**2 - 2**n * math.log(2)**2

# print(func_p2(3)) # 28.74 ← 0 oder mehr
#Und n>3 bei func_p2(n) >0 (∵ 3**n >> 2**n)

#Daher n>3 bei func_p1(n)Steigt monoton an...(1)
#Auch drucken(func_p1(3)) # 18.11 ← 0 oder mehr...(2)

# (1),(2)Mehr n>3 bei func(n)Auch monoton ansteigend...(3)
#Weiterer Druck(func(3)) #2 ← 0 oder mehr...(4)

#Deshalb,(3),(4)Mehr n>=3 bei func(n) > 0 
# Q.E.D

# (2)
print(func(1), func(2)) # -8 -7 Deshalb f(n) <0, daher ist n, das das Subjekt erfüllt, 1,2

# (3)

lis = [] #Lösungsliste
for a in range(9): # n,a,b >=Von 0 a,b ist 0~8 ist genug
    for b in range(9):
        # n=Wenn 1
        jouken1 = a + b # joken1 = 8

        # n=2 Uhr
        jouken2 = 2 * a + b # joken2 = 7

        if jouken1 == 8:
            lis.append((a,b,1))
        elif jouken2 == 7:
            lis.append((a,b,2))
        else:
            continue

print(lis)
#[(0, 7, 2), (0, 8, 1), (1, 5, 2), (1, 7, 1), (2, 3, 2), (2, 6, 1), (3, 1, 2), (3, 5, 1), (4, 4, 1), (5, 3, 1), (6, 2, 1), (7, 1, 1), (8, 0, 1)]

Dieses Mal möchte ich hier enden. Ich könnte den Rest der Probleme machen, wenn ich zu frei bin, um ww zu sterben Ich habe Python zum ersten Mal verwendet, um simultane Gleichungen zu lösen, was wunderbar ist. Sie können wirklich alles tun, Python ist unglaublich! Wenn mir etwas einfällt, das ich noch einmal versuchen möchte, oder etwas, das interessant aussieht, werde ich es locker machen.

Danke für Ihren Besuch.

Recommended Posts

Tohoku University 2020 Early Mathematical Exam (Science) Ich habe versucht, die großen Fragen 1 bis 3 mit Python zu lösen
Ich habe versucht, die erste Frage der Mathematik-Aufnahmeprüfung 2019 der Universität Tokio mit Python Sympy zu lösen
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich wollte ABC160 mit Python lösen
Ich habe versucht, TSP mit QAOA zu lösen
Ich wollte ABC172 mit Python lösen
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
Ich wollte den NOMURA Contest 2020 mit Python lösen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich möchte APG4b mit Python lösen (Kapitel 2)
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 5/22]
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 7/22]
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 4/22]
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 3/22].
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 6/22]
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich wollte den Panasonic Programming Contest 2020 mit Python lösen
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Mayungos Python Learning Episode 3: Ich habe versucht, Zahlen zu drucken
Ich habe gRPC mit Python ausprobiert
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
Ich habe versucht zu beheben "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren"
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht herauszufinden, ob ReDoS mit Python möglich ist
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
Grundprüfung für die Python3-Ingenieurzertifizierung - Ich habe versucht, die Scheinprüfung zu lösen -
Ich habe versucht, alle Bemerkungen von Slack mit Wordcloud (Python) zusammenzufassen.
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, Gesichtsmarkierungen mit Python und Dlib leicht zu erkennen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.