# 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.

സംവേദനാത്മക പതിപ്പ്: https://www.calcopenly.com/ml/everyday/love-compatibility-calculator
വിഷയം: ദൈനംദിന കാൽക്കുലേറ്ററുകൾ

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.

## ഇൻപുട്ടുകൾ

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

## ഫലങ്ങൾ

- Match score — പ്രധാന ഫലം
- Verdict

## സൂത്രവാക്യം

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

## പരിഹരിച്ച ഉദാഹരണങ്ങൾ

### Romeo and Juliet

- First name: Romeo
- Second name: Juliet
- **Match score: 54%**
- **Verdict: Worth a date**
- പരിശോധനയുടെ ഉറവിടം: 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%**
- പരിശോധനയുടെ ഉറവിടം: 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**
- പരിശോധനയുടെ ഉറവിടം: 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**
- പരിശോധനയുടെ ഉറവിടം: 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%**
- പരിശോധനയുടെ ഉറവിടം: Python 3.8 FNV-1a of 'zoë+zoë'.encode('utf-8') = 1747526412; mod 101 = 71

## ചോദ്യങ്ങൾ

### 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.

### “Love calculator (just for fun)” എത്രത്തോളം കൃത്യമാണ്?

കൃത്യത നിങ്ങളുടെ ഇൻപുട്ടുകളെയും രീതിയുടെ അനുമാനങ്ങളെയും ആശ്രയിച്ചിരിക്കുന്നു. ദശാംശ ഗണിതം 50 സാർഥക അക്കങ്ങൾ ഉപയോഗിക്കുന്നു. എന്നാൽ അനുമാനക്കണക്കുകൾ, സംഖ്യാത്മക രീതികൾ, ഉറവിട ഡാറ്റ എന്നിവയ്ക്ക് കൃത്യത കുറവാകാം; പ്രദർശിപ്പിക്കുന്ന മൂല്യം റൗണ്ട് ചെയ്യുന്നത് ഈ പരിമിതികൾ നീക്കില്ല. സ്വതന്ത്ര ഉറവിടങ്ങളിലെ പരിഹാരങ്ങളുമായി പരിശോധിച്ച ഉദാഹരണങ്ങൾ: 5. ഉദാഹരണത്തിന്, “Romeo and Juliet” എന്നത് Python 3.8 FNV-1a of b'juliet+romeo' = 174137891; mod 101 = 54 ഉപയോഗിച്ച് പരിശോധിക്കുന്നു.

### ഈ രീതിയുടെ ഉറവിടം എന്താണ്?

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

## സ്രോതസ്സുകൾ

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

_വിനോദത്തിന്. ഈ ഫലത്തിന് ശാസ്ത്രീയ അടിത്തറയില്ല._
