# Love calculator (just for fun)

> For entertainment only: a love compatibility score from 0 to 100 made from two names. The same pair always gets the same score; it predicts nothing.

Versión interactiva: https://www.calcopenly.com/es/everyday/love-compatibility-calculator
Tema: Calculadoras para el día a día

The score is a hash, not a measurement. The calculator keeps only the letters of both names, lowercases them, sorts the pair so the order doesn't matter, runs the 32-bit FNV-1a hash over the result and takes the remainder after dividing by 101, which gives a whole number from 0 to 100. The verdicts cover 0–20, 21–40, 41–60, 61–80 and 81–100.

The result is for entertainment only and does not predict anything about a real relationship. The same two names always get the same score, so Romeo and Juliet get 54% ("Worth a date") every time, in either order and any mix of capitals.

Every letter feeds the hash, so a nickname, a middle name or a surname gives an unrelated score.

## Datos

- **First name**
- **Second name**

## Resultados

- Match score — resultado principal
- Verdict

## Fórmula

$$
\text{score} = \operatorname{FNV\text{-}1a}_{32}(\text{sorted lowercase letters}) \bmod 101
$$

## Ejemplos resueltos

### Romeo and Juliet

- First name: Romeo
- Second name: Juliet
- **Match score: 54%**
- **Verdict: Worth a date**
- Fuente de comprobación: Python 3.8 FNV-1a of b'juliet+romeo' = 174137891; mod 101 = 54

### Order, case and punctuation don't matter

- First name: juliet!
- Second name:  ROMEO 
- **Match score: 54%**
- Fuente de comprobación: Same normalized key 'juliet+romeo' as above

### Ada and Charles

- First name: Ada
- Second name: Charles
- **Match score: 95%**
- **Verdict: Match made in the stars**
- Fuente de comprobación: Python 3.8 FNV-1a of b'ada+charles' = 1687705348; mod 101 = 95

### Elizabeth and Darcy

- First name: Elizabeth
- Second name: Darcy
- **Match score: 36%**
- **Verdict: Some spark**
- Fuente de comprobación: Python 3.8 FNV-1a of b'darcy+elizabeth' = 613105083; mod 101 = 36

### Accented letters hash as UTF-8

- First name: Zoë
- Second name: Zoë
- **Match score: 71%**
- Fuente de comprobación: Python 3.8 FNV-1a of 'zoë+zoë'.encode('utf-8') = 1747526412; mod 101 = 71

## Preguntas

### How does this love calculator work?

It turns the letters of two names into a number with a fixed formula. The letters are lowercased, the two names are sorted into a pair, and the pair is hashed with 32-bit FNV-1a and reduced modulo 101 to a score from 0 to 100. Nothing about the people themselves goes in, so the score is entertainment and carries no meaning.

### Can a love calculator predict a relationship?

No. The score comes from the spelling of two names and says nothing about compatibility. What does predict relationship quality is how each partner experiences the relationship: in a 2020 PNAS study pooling 43 longitudinal couples datasets from 29 laboratories, perceived partner commitment, appreciation, sexual satisfaction, perceived partner satisfaction and conflict were the top predictors, and relationship-specific measures explained up to 45% of the variance in relationship quality at the start of the studies.

### Why do the same names always get the same score?

Because a hash is deterministic: the same input always gives the same output. The names are normalized first, so "Romeo" and "Juliet" or "juliet!" and " ROMEO " both become juliet+romeo and score 54. Adding a surname or using a nickname changes the letters and gives an unrelated score.

### Do accented and non-Latin names work?

Yes. Any Unicode letter counts, including accented letters and non-Latin scripts, and the letters are hashed as UTF-8 bytes, so Zoë and Zoë score 71. Digits, spaces and punctuation are ignored, and a name with no letters at all gets an error.

### ¿Qué precisión tiene «Love calculator (just for fun)»?

La precisión depende de tus datos y de los supuestos del método. El cálculo decimal usa 50 cifras significativas, pero las estimaciones, los métodos numéricos y los datos de origen pueden ser menos precisos; el redondeo mostrado no elimina esos límites. Ejemplos resueltos comprobados con fuentes independientes: 5. Por ejemplo, «Romeo and Juliet» se comprueba con Python 3.8 FNV-1a of b'juliet+romeo' = 174137891; mod 101 = 54.

### ¿De dónde procede el método?

IETF draft — The FNV non-cryptographic hash algorithm (Fowler, Noll, Vo).

## Fuentes

- [IETF draft — The FNV non-cryptographic hash algorithm (Fowler, Noll, Vo)](https://datatracker.ietf.org/doc/html/draft-eastlake-fnv)

_Por entretenimiento. Este resultado no tiene fundamento científico._
