2009-06-26 21 views
8

Estoy interesado en la generación de códigos cortos (hasta 6 caracteres), que no son ambiguas para facilitar la lectura humana:¿Puede recomendar cualquier información sobre letras/números menos ambiguos?

es decir: 2Z8B5S sería una muy mala código porque B se parece mucho a 8 y 2 se parece mucho a la Z , etc.

Un buen código sería algo así como: AE37HT, por ejemplo.

Obviamente, podría intentar resolverlo yo mismo, pero estaba buscando si había estudios de personas como la NASA o lo que sea.

Si también tiene alguna referencia acerca de cómo la legibilidad se ve afectada por el color, tipografía, tamaño y distancia de visualización (estoy mirando algo potencialmente de una pulgada de alto desde una distancia de aproximadamente 6 pies), eso sería útil también. En el monitor o posiblemente en la impresión, también.

me encontré con este conjunto de directrices, pero no tiene ningún resultados empíricos que podría convertirse en una tabla para generar los códigos:

http://www.usabilitysciences.com/usability-of-codes-passwords-numbers-and-letters/

+0

es re ¿Es importante la compatibilidad en una pantalla de computadora cuando es probable que haya una funcionalidad de copiar/pegar disponible? – TheTXI

+0

Si van a leerse desde 6 pies de distancia, creo que es justo asumir que esto no va a ser particularmente interactivo ... o si lo es, puede ser dentro de un sistema de juegos que * no * tener c'n'p. Ciertamente no suena como su página web promedio ... –

+0

¿No es suficiente el sentido común? Solo mira cada letra y número y elimina todos los caracteres posiblemente ambiguos de tu conjunto. – mbillard

Respuesta

7

Francamente, creo que el factor más importante aquí está eligiendo la fuente correcta.

Si su objetivo es puramente legibilidad, que será una cuestión de escoger una fuente que sea preferentemente:

1) Ancho fijo. Para seleccionar números/letras al azar, el ancho fijo ayuda enormemente, ya que el interletraje no cambia a medida que se desplaza por la fuente.

2) Use una fuente con apariencia 0/O por separado, eso definitivamente arruina a la gente. Busque otras combinaciones de letras/números que sean similares. Potencialmente, deje 0/O fuera de la mezcla solo por este motivo.

3) Elija una fuente con serifs sutiles y cambios de peso.

Para ver algunas pautas sobre legibilidad, vea this page.

Con la fuente correcta, creo que podría elegir cualquier combinación de letra/número y que sea comprensible (aparte de potencialmente 0 y O). Creo que las muestras 8/B, 5/S y otras serían claras con la fuente correcta.

La otra cosa que podría considerar sería usar un color para las letras y un segundo para los números, esto daría pistas sobre las combinaciones de números/letras potencialmente ambiguas. Me gustaría hacer de esto una señal sutil, ya que tener un cambio de color drástico llamará la atención sobre las letras o los números, lo que dañará la legibilidad general.


Editar después de leer su comentario a otra respuesta:

necesito solamente unos pocos miles de códigos, así que no estoy terriblemente preocupado por el tamaño del dominio

Si este es el caso, recomendaría dejar todo el conjunto de números, y solo agregar selectivamente las letras que no tienen similitud visual (o auditiva, si estás leyendo esto) con los números. Con 6 dígitos, incluso con números, tienes más posibilidades de código de las que necesitas. Agregar de manera selectiva letras para ayudar a diferenciar será más fácil que intentar eliminar selectivamente algunas.Probablemente me quedaré con 1-9, A, Z, R, W y otras letras que no coinciden con los números.

1

Si tiene la opción, puede influir en esto cambiando las fuentes. Por ejemplo, muchas fuentes orientadas a programadores reducen deliberadamente el cero, usan diferentes formas para I, 1 y 1, y así sucesivamente. Como recuerdo, las fuentes serif también se usan para este propósito. Estoy adivinando, no puedo respaldar esto, que también fue la razón por la que muchos libros antiguos se compilan con "figuras de texto", números que varían de alturas que fluyen mejor con la página y (supuestamente) aumentan la legibilidad. (Ver http://en.wikipedia.org/wiki/Text_figures - sí, estoy casi citarlos textualmente.)

+0

Tendría el control total de la fuente. Estoy pensando en golpear muchas letras y números. Otra posibilidad es organizarlo para que siempre sea letter-number-letter-number, etc. Así que hay una cierta cantidad de patrones para ayudar a los usuarios. –

3

Estoy de acuerdo con la caña que su mejor solución recaerá en fuente.

Si intenta eliminar los números ambiguos, se pierde 1 (parece minúscula l), 8 (capital B) y 0 (mayúscula o minúscula O), que es el 30% de los caracteres numéricos disponibles. Eso es mucho. Incluso puede tener problemas con 6 y capital G.

Por lo tanto, la eliminación de letras y números de aspecto similar realmente limitará sus opciones.

Claro, incluso con una fuente, hay algunas similitudes: cero y O mayúscula siempre le darán problemas.

¿Qué tal el Correo Nuevo? O algo similar. Serif. Monoespaciado

Uno de mis ejemplos de fuentes favoritas es el nombre del estado de Illinois. Intenta escribir eso en un cuadro de texto usando Arial. Pon tres L's allí: Illlinois. Luego, intente ver que hay 3 L's. Y, buena suerte moviendo el punto de inserción al lugar correcto. Mucho más fácil en una fuente de tipo Courier: Illlinois.

Hay una razón por la cual StackOverflow y otros sitios que muestran código usan una fuente tipo Courier para mostrar el código. Y por qué SO y otros sitios web y software (Apple) utilizan fuentes similares a Courier para campos de entrada de datos (cuadros de texto, áreas de texto como este.

+0

Gracias, solo necesito unos miles de códigos, así que no estoy muy preocupado por el tamaño del dominio. También estoy considerando usar números, por lo que las letras solo aumentarían el espacio. –

2

¿Qué tal un enfoque de retroceso en la generación de códigos, donde invalidaría cualquier solución que no funciona? t se ajustan a un conjunto de reglas, como no tener caracteres similares uno al lado del otro. Si puede identificar todos los pares de caracteres no deseados y marcar como inválidas las soluciones que los contengan, creo que es bastante sencillo.

7

Si no quería preocuparse por las fuentes. Aquí hay una lista que hice (sin incluir letras minúsculas):

'0' can look like a 'O' 
'1' can look like a 'l' 
'2' can look like a 'Z' 
'5' can look like a 'S' 
'8' can look like a 'B' 
'B' can look like a '8' 
'I' can look like a '1' 
'J' can look like a '1' 
'L' can look like a '1' 
'O' can look like a '0' 
'S' can look like a '5' 
'T' can look like a '1' 
'Z' can look like a '2' 
Cuestiones relacionadas