blog.icewolf.ch

Let's talk about IT!
posts - 1835, comments - 295, trackbacks - 0

My Links

Archives

Post Categories

icewolf

Saturday, July 17, 2021

Zahlenrätsel mit PowerShell lösen

Hallo zusammen,

Ich bin per Zufall auf folgendes Zahlenrätsel gestossen. Und habe Beschlossen, das mit PowerShell zu lösen.

Abu Ali al-Hasan ibn al-Hasan ibn al-Haitham (965–1041) war ein Mathematiker, Astronom und Physiker ersten Ranges. In seiner Schrift "Über die Lösung einer Zahlenfrage+ findet man folgendes Rätsel:

Als ein Schäfer nach der Grösse seiner Herde gefragt wird, antwortet er: "Es sind weniger als 500 Schafe. Teile ich die Anzahl meiner Schafe durch 2, 3, 4, 5 oder 6, so bleibt jedes Mal ein Schaf übrig. Teile ich meine Herde jedoch durch 7, so geht die Rechnung glatt auf." Wie gross ist die Herde?

Nun lösen wir dieses Zahlenrätsel mit PowerShell. Dazu braucht es erstmal eine mathematische Funktion, welche den Rest einer Division ausgibt. Diese Funktion heisst "Modulo" und wird in PowerShell mit dem % Symbol angegeben.

Zeig mir den Rest von 7 geteilt durch 6 = 1 (PowerShell: 7 % 6)

Zeig mir den Rest von 8 geteilt durch 6 = 2 (PowerShell: 8 % 6)

Nun müssen wir also alle Zahlen zwischen 0 und 500 herausfinden, welche durch 7 Teilbar sind. In einer Schleife addieren wir also immer 7 dazu.

Um den Code möglichst effizient zu halten, starten wir mit dem grössten Divisor. Erst wenn dort der Rest 1 ergibt untersuchen wir die anderen Reste der Divison.

$i = 0
while ($i -lt 500)
{
    $i = $i +7
    #Write-Host "X: $i"
    $mod2 = $i % 2
    $mod3 = $i % 3
    $mod4 = $i % 4
    $mod5 = $i % 5
    $mod6 = $i % 6
    
    If ($Mod6 -eq 1)
    {
        If ($Mod5 -eq 1)
        {
            If ($mod4 -eq 1)
            {
                If ($mod3 -eq 1)
                {
                    If ($mod2 -eq 1)
                    {
                        Write-Host "Solution: $i" -ForeGroundColor Green
                    }
                }
            }
        }
    }
}

Die Lösung ist also: 301

Noch viel schöner ist die Lösung von Andre Sicking (Twitter: @andre_sicking)

For($i = 0$i -le 500$i = $i + 7) {
If(($i % 2 -eq 1) -and ($i % 3 -eq 1) -and ($i % 4 -eq 1) -and ($i % 5 -eq 1) -and ($i % 6 -eq 1)) { Write-Host "Es sind $i Schafe." }
}
Liebe Grüsse
Andres Bohren

posted @ Saturday, July 17, 2021 10:56 AM | Filed Under [ PowerShell Fun ]

ESXi670-202103001

Hallo zusammen,

Es gibt mal wieder Patches für ESXi 6.70

VMSA-2021-0014

https://www.vmware.com/security/advisories/VMSA-2021-0014.html

 

VMware ESXi 6.7, Patch Release ESXi670-202103001

https://docs.vmware.com/en/VMware-vSphere/6.7/rn/esxi670-202103001.html

Product Patches

https://my.vmware.com/group/vmware/patch#search

Das ZIP File wird über den Datastore Browser auf den ESXi Server raufgeladen.

Da ich einen Single ESXI Server habe, schalte ich erstmal alle VM's aus.

Nun kann der Patch installiert werden.

esxcli software vib install -d /vmfs/volumes/datastore3/ISO/ESXi670-202103001.zip

Nach dem Reboot des ESXi Hosts ist die korrekte Build Nummer 17700523 zu sehen

Grüsse
Andres Bohren

posted @ Saturday, July 17, 2021 10:19 AM | Filed Under [ Virtualisation ]

Powered by:
Powered By Subtext Powered By ASP.NET