2016-12-09 4 views
2

Ist es möglich, Zufallszahlen zwischen zB 1000000 und 9999999 zu generieren, die leicht zu merken sind?Generieren von einfach zu merkenden Zahlen

weiß ich, der Begriff easy to remember relativ ist, aber ich würde glauben, dass für Ihre typischen Menschen die Zahl 331.332 ist sie leichter als 537.106 zu erinnern (oder ist es?)

Use Case. Generiere eindeutige Zahlen für Leute in einer Anwendung und dachte, ich könnte versuchen, es den Leuten leichter zu machen, indem ich ihnen easy numbers zuweise. Die Art und Weise, wie ich es spiele, ist, dass die ersten Leute, die sich registrieren, die einfachen Zahlen bekommen und von da an die Leichtigkeit abnimmt.

Wenn Sie das gleiche in einer beliebigen Programmiersprache gesehen haben Sie für Inspiration für andere

Es gibt eine similar question here schreiben konnte, aber das war in der Natur alphanumerische und es war vor sechs Jahren

+2

Nur wenn sie einer Art Muster folgten - was sie per Definition nicht zufällig machen würde. – martineau

+1

Dies ist ein unglaublich breites Thema und scheint zwei verschiedene Fragen zu sein. Einer ist: "Was macht eine Nummer leicht zu merken", was für SO nicht möglich ist. Es ist mehr als wahrscheinlich ein Psychologie-Forschungsprojekt. Zwei ist "Wie erzeuge ich einfach zu merkende Zahlen", was alles von diesem ersten Schritt abhängt. –

+0

Wenn Sie annehmen, dass sich einfach zu merkende Zahlen mehr Wiederholungsziffern enthalten, können Sie Zufallszahlen generieren und zählen, wie viele Ziffern wiederholt werden, und diejenigen mit etwa vier wiederholten Ziffern auswählen. – Atirag

Antwort

2

Hier habe ich gefunden einige Dinge, die eine Reihe unvergesslicher: http://www.slideshare.net/cntryrckr69/what-makes-a-number-memorable

ich habe es in python

auf einige dieser Dinge auf Basis implementiert

Hier ist, was der Code wie folgt aussieht:

import random 

def easynum(num): 
    num = str(num) 

    if len(set(num)) <= 2: # common characters eg. 1114111 
     print("common") 
     return True 
    if num == num[::-1]: # its the same backwards eg. 1234321 
     print("reversible") 
     return True 
    if all(x <= y for x, y in zip(list(num), list(num)[1:])): # increasing, e.g. 123456789 
     print("increasing") 
     return True 
    if all(x >= y for x, y in zip(list(num), list(num)[1:])): # decreasing 
     print("decreasing") 
     return True 


for count in range(10): 
    rand = random.randint(1000000, 9999999) 
    while easynum(rand) == None: 
     rand = random.randint(1000000, 9999999) 
    print(rand) 

Hier ist die Ausgabe Ich habe:

reversible 
5691965 
reversible 
9585859 
increasing 
1112557 
reversible 
9057509 
reversible 
3831383 
decreasing 
8322000 
increasing 
1122356 
common 
4884484 
decreasing 
9887320 
common 
4004040 
1

ich von ein paar leicht denken kann, Muster erinnern:

1234321 (half reversed) 
1234567 (in order) 
1231231 (repeating) 
7654321 (reverse order) 
2468024 (even in order) 
1357135 (odd in order) 
1212121 (alternating) 

Es gibt offensichtlich mehr, die Sie sich vorstellen können. Habe eine Bibliothek mit verschiedenen Mustern. Wählen Sie nach dem Zufallsprinzip ein Muster aus der Bibliothek aus, und füllen Sie dann das Muster zufällig innerhalb der Beschränkungen des Musters. Zum Beispiel können Sie nur die Anfangsziffer des 'in Reihenfolge' Musters wählen, die folgenden Ziffern hängen von der Anfangsziffer ab.

+0

Ich denke, dass Zahlen mit sich wiederholenden Ziffern auch als leicht zu merken gelten würden, '116633' –

Verwandte Themen