Anzahl der Möglichkeiten zu schreiben, die n als Summe von Potenzen von 2
Gibt es irgendeinen Algorithmus, um herauszufinden, wie viele Möglichkeiten gibt es für eine Zahl schreiben zum Beispiel n , mit der Summe der Leistung von 2 ?
Beispiel : für 4 gibt es vier Möglichkeiten :
4 = 4
4 = 2 + 2
4 = 1 + 1 + 1 + 1
4 = 2 + 1 + 1
Dank.
- Wollen Sie differenzieren zwischen 4 = 2 + 1 + 1 und 4 = 1 + 1 + 2 oder sind diejenigen angesehen werden, da die gleichen?
- Haben Sie gelöst 1, 2, 3, 4, 5, 6, 7 und sichtbar, wenn eine triviale Muster entsteht?
- Danke, Nein, ich möchte nicht zwischen Ihnen zu unterscheiden. und ich sah ein Muster, wie fibo-Algorithmus, jedoch bin ich nicht sicher.
- Ist es nicht einfach, eine Teilmenge-Summe-problem ? Oder sind Sie interessiert an einer geschlossenen Formel?
- Ich denke, etwa eine Stunde, aber ich bin mir nicht sicher. eine Frage, die ich stellte.
- Es gibt viel Informationen, einschließlich der Wiederholung Beziehungen für diese Sequenz an der Die On-Line Encyclopedia of Integer Sequences - A018819.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Angenommen, g(m) die Anzahl der Möglichkeiten, zu schreiben m als Summe von Potenzen von 2. Wir verwenden f(m,k) repräsentiert die Anzahl der Möglichkeiten zu schreiben m als Summe von Potenzen von 2 mit allen zahlen' Energie kleiner als oder gleich k ist. Dann können wir reduzieren die Gleichung:
Take 6 als Beispiel:
Hier ist der code, der unter:
Hoffe, es hilft!
Eine rekursive definition der Folge (aus Peter ' s link zu A018819):
f(n) = 1 falls n = 0 Sum(j = 0..[n/2], f(j)), wenn n > 0 http://mathurl.com/nuaarfm.png
Wollen Sie die Anzahl der Möglichkeiten, in denen Sie Ausdrücken können, eine Zahl als Summe der Leistung der 2.
Erstens müssen Sie die Anzahl bits, die in dieser bestimmten Zahl, da die Anzahl der bit geben uns die Mindestanzahl erforderlich, um es auszudrücken, als die Summe der Potenz von 2 ist.
Die maximale Anzahl erforderlich, um es auszudrücken, als eine Summe von die macht der 2 wird die Zahl selbst, weil Sie Ausdrücken können, als Summe von 1 ( weil 2 die Kraft 0 ist 1).
Beispiel: 5 ausgedrückt werden kann als ( 1+1+1+1+1)
daher die Gesamtzahl der Möglichkeiten zum Ausdruck bringen, eine Zahl als Potenz von 2 ist einfach gegeben durch die Formel -->
lassen Sie das nicht sein x
( x - no der gesetzten bits in x ) + 1 ;
lassen Sie zum Beispiel die Zahl 17
die dann nicht von bits, die in 17 ist 2
damit die keine Möglichkeiten gibt ( 17 - 2 ) + 1 = 16 ;