# 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/bn/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টি সার্থক অঙ্ক ব্যবহৃত হয়, কিন্তু আনুমানিক হিসাব, সংখ্যাগত পদ্ধতি ও উৎসের তথ্য কম নির্ভুল হতে পারে; প্রদর্শিত মান রাউন্ড করলে এই সীমাবদ্ধতাগুলি দূর হয় না। স্বতন্ত্র উৎসের সমাধানের সঙ্গে যাচাই করা উদাহরণ: ৫। যেমন, “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)

_বিনোদনের জন্য। এই ফলাফলের কোনো বৈজ্ঞানিক ভিত্তি নেই।_
