Die Suche ergab 130 Treffer

von Qubit
Freitag 1. November 2024, 22:30
Forum: Allgemeine Fragen
Thema: Code-Strukturierung, macht Vererbung hier Sinn?
Antworten: 29
Zugriffe: 9123

Re: Code-Strukturierung, macht Vererbung hier Sinn?

Man könnte für die Motoren auch eine Art Factory-Pattern und zur Berechnung eine Art Interface (~Protocol) verwenden..

from typing import Protocol

class Zylinder:
def __init__(self,hoehe,breite,tiefe):
self.hoehe = hoehe
self.breite = breite
self.tiefe = tiefe

class Motor:
def __init__(self ...
von Qubit
Freitag 18. Oktober 2024, 19:39
Forum: Allgemeine Fragen
Thema: TypeError: unsupported operand type(s)
Antworten: 26
Zugriffe: 5914

Re: TypeError: unsupported operand type(s)

Ich weiß zwar nicht genau, was du da an Zeitdifferenzen berechnen willst, aber Python hat da schon etwas on board, nennt sich "relativedelta"..

import datetime
from dateutil.relativedelta import relativedelta



def zeitspanne_ermitteln(start,end):
return relativedelta(end, start)



def main ...
von Qubit
Freitag 15. März 2024, 22:59
Forum: Ideen
Thema: Collatz Folgen 3n+1
Antworten: 10
Zugriffe: 13441

Re: Collatz Folgen 3n+1


So wie ich es verstehe, akzeptieren Sie meine Version des Beweises.
Oder?


Die Ansätze mit "reversen Bäumen" sind zumindestens nicht neu und haben bisher keine anerkannten Beweise der Collatz-Vermutung geliefert.

Dazu müsstest du mind. beweisen, dass der reverse Baum

1. zusammenhängend ist ...
von Qubit
Donnerstag 14. März 2024, 09:43
Forum: Allgemeine Fragen
Thema: Bits in einem Zahlenbereich zählen ohne Iteration
Antworten: 8
Zugriffe: 2998

Re: Bits in einem Zahlenbereich zählen ohne Iteration

Ja, das wohl eher ein mathematisches Problem :)

Die Summe aller Einsen bis zu einer Zweierpotenz 2^k-1 ist k*2^(k-1) (zb. für 0 bis 3=2^2-1 sind das in Summe 2*2^1=4 Einsen).

Das kann man sich zB. durch vollständige Induktion klar machen:

A(k) für 2^k-1:
k*2^(k-1)

A(k+1) für 2^(k+1)-1:
Dazu ...
von Qubit
Mittwoch 28. Februar 2024, 14:41
Forum: Allgemeine Fragen
Thema: 2 konkurierende Funktionen (Threading)
Antworten: 15
Zugriffe: 3106

Re: 2 konkurierende Funktionen (Threading)

__blackjack__ hat geschrieben: Mittwoch 28. Februar 2024, 14:25 Wobei `terminate()` auch die freundlichere Wahl an der Stelle wäre.
Ja, aber wohl mit einer Warnung..
https://docs.python.org/3/library/multi ... .terminate
von Qubit
Mittwoch 28. Februar 2024, 14:20
Forum: Allgemeine Fragen
Thema: 2 konkurierende Funktionen (Threading)
Antworten: 15
Zugriffe: 3106

Re: 2 konkurierende Funktionen (Threading)


@Qubit: Das bricht aber die anderen noch laufenden `Futures` an der Stelle nicht ab. Die werden trotzdem weiter berechnet.


Ja, das stimmt wohl.
Da hilft wohl dann nur, die Workerprozesse zu killen, wenn man das Future hat..


from concurrent import futures

def viaexponent(n):
result = n**5 ...
von Qubit
Samstag 24. Februar 2024, 21:17
Forum: Allgemeine Fragen
Thema: 2 konkurierende Funktionen (Threading)
Antworten: 15
Zugriffe: 3106

Re: 2 konkurierende Funktionen (Threading)

Mit futures.FIRST_COMPLETED sollte das auch funktionieren..


from concurrent import futures

def viaexponent(n):
result = n**5
# hier sollte der Befehl stehen der "viamulti" killt
return result

def viamulti(n):
result = n*n*n*n*n
# hier sollte der Befehl stehen der "viaexponent" killt ...
von Qubit
Dienstag 30. Januar 2024, 11:24
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: Wie willst du einen Datentyp für reelle Zahlen definieren, wenn fast alle reellen Zahlen nicht berechenbar sind?


Sorry, ich glaube, wie sprechen auch einander vorbei..

Unstrittig ist, dass Computer mit Maschinenzahlen rechnen.
Und Maschinenzahlen sind keine Dezimalzahlen der ...
von Qubit
Dienstag 30. Januar 2024, 00:39
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: Wie willst du einen Datentyp für reelle Zahlen definieren, wenn fast alle reellen Zahlen nicht berechenbar sind? Also wirklich für reelle Zahlen und nicht für irgendeine Untermenge? Wenn das nicht geht, dann ja, man kann mit Computern nicht richtig runden. Unter anderem, weil man fast alle ...
von Qubit
Montag 29. Januar 2024, 23:59
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


`round` würde versagen, wenn sich `round` anders verhalten würde als in der Doku beschrieben. Da aber beschrieben ist, was `round` kann und wie es sich in bestimmten Fällen verhält, ist es dann Anwendersache, die für seine Ansprüche richtige Funktion auszusuchen.


Das kann man natürlich so sehen ...
von Qubit
Montag 29. Januar 2024, 23:55
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: In Python eben nicht. Da gibt es keine reellen Zahlen. Kann es auch gar nicht, weil man im allgemeinen Fall nicht wirklich damit rechnen kann. Unter anderem, weil fast alle reellen Zahlen nicht berechenbar sind (es kann also keine Turing-Maschine (und damit auch kein Python-Programm) geben ...
von Qubit
Montag 29. Januar 2024, 23:44
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: Das Verhalten, das du bemängelst, wird in der Doku von round explizit angesprochen und wie von Sirius3 und narpfel beschrieben erklärt (https://docs.python.org/3/library/functions.html#round). Daher würde ich das nicht als Fehler sehen. Der Begriff "wissenschaftliches Runden" taucht in der ...
von Qubit
Montag 29. Januar 2024, 22:46
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: 2.635 ist keine reelle Zahl, sondern ein 64-Bit-IEEE-754-Wert. Und in dieser Darstellung ist 2.635 == 2.6349999999999997868371792719699442386627197265625, und das ist eben klar näher an 2.63 als an 2.64.


Doch "2.635" ist eine reelle Zahl.
Was du meinst, sind "Maschinenzahlen", also die ...
von Qubit
Montag 29. Januar 2024, 22:45
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@qubit: Deine Rundung ist aber falsch, wenn ich die Zahl 2.63499999999999978684 runden möchte, wird fälschlicherweise aufgerundet.

Du hast nur den einen nummerischen Fehler durch einen anderen ersetzt. Zum Glück ist klar definiert, wie gerundet werden sollte, und das ist nicht die Näherungsformel ...
von Qubit
Montag 29. Januar 2024, 21:50
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: Das ist jetzt aber nicht richtig, weil 2.635 näher an 2.63 als an 2.64 ist.


Was heisst näher?

Der Abstand ist in den reellen Zahlen R über eine (Standard-) Metrik definiert ("Euklidische Metrik"), und da gilt:

|2.635-2.64| = |2.635-2.63|=0.005

Was heisst falsch?

Es geht um die ...
von Qubit
Montag 29. Januar 2024, 20:54
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


@Qubit: Dezimalzahlen können nicht immer exakt durch binäre Floats dargestellt werden, 2.635 ist in Wirklichkeit
f"{2.635:.20f}"
# 2.63499999999999978684
Und damit kleiner als 2.635 und wird deshalb abgerundet.


Jup, wobei ja auch diese Float-Darstelllung so nur max. auf 8 Stellen genau sein ...
von Qubit
Montag 29. Januar 2024, 20:49
Forum: Allgemeine Fragen
Thema: Funktion Zahlworte ersetzen
Antworten: 17
Zugriffe: 3232

Re: Funktion Zahlworte ersetzen


Zustandsautomaten zur Worterkennung gibt's ja netterweise schon fertig:


Sehr schöne Lösung :D

Könnte man jetzt auch mit einem Dictionary verwursten..

import re

ZAHLWOERTER = {
'null': '0', 'zero': '0',
'eins': '1', 'one': '1',
'zwei': '2', 'two': '2',
'drei': '3', 'three': '3',
'vier ...
von Qubit
Montag 29. Januar 2024, 14:16
Forum: Allgemeine Fragen
Thema: Ein Rundungsproblem
Antworten: 42
Zugriffe: 7235

Re: Ein Rundungsproblem


Nebenbemerkung zu round: 'round' rundet wissenschaftlich, während in der Schule i.d.R. kaufmännisches Runden gelehrt wird. Dies könnte dann bei denen, die die Software verwenden sollen, zu Verwirrung sorgen.


Aber das macht "round" auch nicht ganz korrekt..

>>> print(round(2.35,1))
2.4 ...
von Qubit
Freitag 19. Januar 2024, 20:46
Forum: Allgemeine Fragen
Thema: brute force und Rechenzeitverkürzung
Antworten: 31
Zugriffe: 5335

Re: brute force und Rechenzeitverkürzung


Also mit Rust oder C++ sollten da mindestens eine, wenn nich zwei Groessenordnungen an Speicher einsparbar sein. Und damit wird es dann auch schneller, weil weniger cache-misses und was nicht. Da ist IMHO Python fehl am Platz. Ausser man kann das so stricken, dass die eigentliche Arbeit ...
von Qubit
Freitag 19. Januar 2024, 14:58
Forum: Allgemeine Fragen
Thema: brute force und Rechenzeitverkürzung
Antworten: 31
Zugriffe: 5335

Re: brute force und Rechenzeitverkürzung


Mich würde mal interessieren wie ich selbst ein smartes Verhältnis von Workern und Chunksize wähle.

Und wo verdammt kommt der Speicherbedarf her? :-O


Das Optimieren von Multiprozess-Anwendungen ist eine "Kunst" für sich und lässt sich nicht pauschal sagen.
Wichtig ist, dass der Dispatcher ...