[PYTHON] Versuchen Sie, die Probleme des "Matrix-Programmierers" zu lösen (Kapitel 1).

Einführung

Während ich dieses Buch lese, werde ich versuchen, die Probleme zu lösen.

Fortsetzung von "Lösen der Probleme / Probleme von" Matrix Programmer "(Kapitel 0 Funktion) --Qiita". Ich werde es vor "1.4.7 Eulers Formel" ansprechen.

Kapitel 1 Körper

1.4 Spielen wir mit ℂ

Herausforderung 1.4.1

Weisen Sie zuerst der Variablen S den obigen Satz oder die Liste komplexer Zahlen zu. Um Punkte in einer komplexen Ebene anzuzeigen, verwenden Sie das Verfahren Plot, das im Plotmodul auf dieser Website enthalten ist. So laden Sie diese Prozedur aus dem Modul:

>>> from plotting import plot

Gehen Sie wie folgt vor, um den S-Punkt anzuzeigen:

>>> plot(S, 4)

Python öffnet dann ein Browserfenster und zeigt die Punkte auf der von S angegebenen komplexen Ebene an. Das erste Argument der Darstellung ist eine Menge komplexer Zahlen (oder ein Tupel aus zwei Zahlen), und das zweite Argument gibt den Maßstab der anzuzeigenden Figur an. In diesem Fall werden komplexe Zahlen mit Absolutwerten von 4 oder weniger für den Real- und Imaginärteil angezeigt. Das zweite Argument ist optional und der Standardwert ist 1. Es gibt ein weiteres optionales Argument, das die Größe des Punkts angibt.

>>> from plotting import plot
>>> S = {2+2j, 3+2j, 1.75+1j, 2+1j, 2.25+1j, 2.5+1j, 2.75+1j, 3+1j, 3.25+1j}
>>> plot(S, 4)

スクリーンショット 2017-01-06 2.59.22.png

1.4.1 Absolutwert der komplexen Zahl

1.4.2 Hinzufügen komplexer Zahlen

Herausforderung 1.4.3

Addiere 1 + 2i zu jedem Element von S unter Verwendung der Einschlussnotation und zeichne eine neue Figur.

>>> plot({1+2j+z for z in S}, 4)

>>> plot({1+2j+z for z in S}, 4)

スクリーンショット 2017-01-06 3.06.41.png

1.4.3 Multiplizieren einer komplexen Zahl mit einer positiven reellen Zahl

Herausforderung 1.4.7

Zeichnen Sie eine neue Figur, die alle komplexen Zahlen in S mit der Einschlussnotation wie in Aufgabe 1.4.3 halbiert.

>>> plot({z/2 for z in S}, 4)

スクリーンショット 2017-01-06 3.12.53.png

1.4.4 Multiplizieren einer komplexen Zahl mit einer negativen reellen Zahl: 180-Grad-Drehung

1.4.5 i: 90-Grad-Drehung multiplizieren

Herausforderung 1.4.8

Zeichnen Sie ein Diagramm, in dem jeder Punkt von S um 90 Grad gedreht und dann in zwei Hälften skaliert wird. Dies kann jedoch erreicht werden, indem jedes Element von S mit einer komplexen Zahl unter Verwendung der Einschlussnotation multipliziert wird.

>>> plot({z*1j/2 for z in S}, 4)

スクリーンショット 2017-01-06 3.18.01.png

Herausforderung 1.4.9

Drehen Sie jeden S-Speicher um 90 Grad, skalieren Sie ihn in zwei Hälften und zeichnen Sie dann ein Diagramm mit einer Skala nach unten und zwei Skalen nach rechts. Dies kann jedoch realisiert werden, indem jedes Element von S mit einer komplexen Zahl multipliziert und die komplexe Zahl unter Verwendung der Einschlussnotation addiert wird.

>>> plot({z*1j/2+2-1j for z in S}, 4)

スクリーンショット 2017-01-06 3.21.02.png

Herausforderung 1.4.10

Das auf dieser Website bereitgestellte Bildmodul enthält ein file2image-Verfahren (filenae) zum Laden von Bildern im PNG-Format. Geben Sie den Namen der Bilddatei als Argument für diese Prozedur an, führen Sie sie aus und weisen Sie den Variablendaten den Rückgabewert zu. Ein Beispiel für ein Graustufenbild, img01.png, kann von der Website dieses Dokuments heruntergeladen werden. Der Wert von Daten ist eine Liste von Listen (Listen mit Listen als Elemente), und Daten [y] [x] geben die Intensität der Helligkeit des Pixels an, das sich bei (x, y) befindet. (0, 0) ist das obere linke Pixel des Bildes und (Breite-1, Höhe-1) ist das untere rechte Pixel des Bildes. Die Intensität wird durch eine ganze Zahl von 0 bis 255 dargestellt, wobei 0 schwarz und 255 weiß ist. Verwenden Sie die Einschlussnotation, um eine komplexe Zahl x + iy k zu definieren und zu veranschaulichen, die die Position (x, y) von Pixeln mit einer Intensität von weniger als 120 im Bild darstellt.

>>> from image import file2image
>>> data = file2image('img01.png')

>>> pts = [x - y * 1j + len(data) * 1j for y in range(len(data)) for x in range(len(data[y])) if data[y][x][0] < 120]
>>> plot(pts, 190)

スクリーンショット 2017-01-06 4.46.55.png

Herausforderung 1.4.11

Schreiben Sie eine Prozedur f (z), die das durch S dargestellte Bild zum Ursprung verschiebt. Wenden Sie dieses Verfahren unter Verwendung der Einschlussnotation auf S an und veranschaulichen Sie die Ergebnisse.

util.py


def f(z):
  x_list = [v.real for v in z]
  y_list = [v.imag for v in z]

  x_center = (min(x_list) + max(x_list)) / 2
  y_center = (min(y_list) + max(y_list)) / 2

  return [v - x_center - y_center * 1j for v in z]
>>> from util import f
>>> lot(f(list(S)), 4)

スクリーンショット 2017-01-06 5.32.51.png

Herausforderung 1.4.12

Wiederholen Sie Übung 1.4.8 mit Punkten anstelle von S.

>>> plot([p*1j/2 for p in pts], 190)

スクリーンショット 2017-01-06 5.38.44.png

1.4.6 Einheitskreis auf komplexer Ebene: Winkelabweichung und Winkel

Recommended Posts

Versuchen Sie, die Probleme des "Matrix-Programmierers" zu lösen (Kapitel 1).
Versuchen Sie, die Probleme / Probleme des "Matrix-Programmierers" zu lösen (Kapitel 0-Funktion)
Versuchen Sie, das N Queen-Problem mit SA von PyQUBO zu lösen
Ich habe versucht, die Version 2020 mit 100 Sprachverarbeitung zu lösen [Kapitel 3: Reguläre Ausdrücke 25-29]
Versuchen Sie, das Fizzbuzz-Problem mit Keras zu lösen
Versuchen Sie, das Problem der Python-Klassenvererbung zu lösen
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, die Daimyo-Matrix durch einen Singularwert zu zerlegen
Versuchen Sie, die Bewegung des Sonnensystems zu simulieren
Ich habe versucht, die 2020-Version von 100 Sprachverarbeitungsproblemen zu lösen [Kapitel 3: Reguläre Ausdrücke 20 bis 24]
Ich habe versucht, die 2020-Version von 100 Sprachverarbeitungsproblemen zu lösen [Kapitel 1: Vorbereitungsbewegung 00-04]
Ich habe versucht, die 2020-Version von 100 Sprachverarbeitungsproblemen zu lösen [Kapitel 1: Vorbereitungsbewegung 05-09]
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Versuchen Sie, die Anzahl der Likes auf Twitter zu schätzen
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
Einführung in die Statistik Die University of Tokyo Press Kapitel 2 Übungen
Versuchen Sie, die Genauigkeit der Twitter-ähnlichen Zahlenschätzung zu verbessern
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
[Anmerkung] Versuchen wir, den Stromverbrauch vorherzusagen! (Teil 1)
17. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
Erste Python ② Versuchen Sie, Code zu schreiben, während Sie die Funktionen von Python untersuchen
Versuchen Sie, das Thema Pelican vorzustellen
Lösen des Labyrinths mit Python-Ergänzung zu Kapitel 6 der Algorithmus-Kurzreferenz-
Lösen Sie die Verzögerung der Interferometerbeobachtung
Versuchen Sie, die kumulierte Rendite des Rollovers im Futures-Handel zu modellieren
Probieren Sie Cython in kürzester Zeit aus
Versuchen Sie, das Triplett des Bootsrennens vorherzusagen, indem Sie das Lernen bewerten
Der schnellste Weg, EfficientNet auszuprobieren
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen
Ergänzung zur Erklärung von vscode
Der einfachste Weg, PyQtGraph auszuprobieren
Versuchen Sie, das Problem der Funktionsminimierung mithilfe der Partikelgruppenoptimierung zu lösen
Ford-Falkerson-Methode und ihre Anwendungen-Ergänzung zu Kapitel 8 der Algorithmus-Kurzreferenz-
Verwenden Sie Rasppie, um das Problem einer unzureichenden mobilen Wi-Fi-Verbindung zu lösen
Versuchen Sie, die Parameter der Gammaverteilung zu schätzen, während Sie einfach MCMC implementieren
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus zu lösen (Theorie)
Versuchen Sie, den Zustand der Straßenoberfläche mithilfe von Big Data des Straßenoberflächenmanagements zu ermitteln
Versuchen Sie, mit n die von Ihnen installierte Version von Node.js herunterzustufen
Versuchen Sie, nur den Kohlenstoff am Ende der Kette mit SMARTS zu reagieren
Versuchen Sie, ein festgelegtes Problem der High-School-Mathematik mit Python zu lösen
Versuchen Sie, den Hintergrund und das sich bewegende Objekt des Videos mit OpenCV zu trennen
Die Geschichte des Versuchs, den Client wieder zu verbinden
Skript zum Ändern der Beschreibung von Fasta
10 Methoden zur Verbesserung der Genauigkeit von BERT
Versuchen Sie, sich der Teilsumme zu stellen
So lösen Sie das Problem beim Verpacken des Behälters
Machen wir einen Jupyter-Kernel
Die Geschichte, MeCab in Ubuntu 16.04 zu setzen
Führen Sie die Matrix zum Terminal Ihres Chefs!
[Python] Probieren Sie pydash der Python-Version von lodash aus
[Python] Löse 10 vergangene Eliteprobleme von Atcoder