Skip to content

Love Calculator Formula and Name-Scoring Method

See how the Love Calculator normalizes and sorts two names, applies a deterministic 32-bit hash-style update, and creates a score from 0 to 100.

How do the Love Calculator formulas work?

This formula page defines the variables used by the Love Calculator, shows how those values are combined, and explains the order of operations behind the result. Use the worked steps to verify an estimate, compare scenarios, and understand which assumptions or rounding rules can affect the displayed answer.

Formula Overview

The algorithm creates one canonical text pair, applies a deterministic 32-bit FNV-1a-style update over its Unicode characters, and reduces the resulting unsigned integer to a value from 0 through 100.

Variable Definitions

  • N₁ and N₂: entered names
  • n₁ and n₂: normalized names
  • C: sorted canonical name pair
  • cᵢ: Unicode code point at position i
  • hᵢ: unsigned 32-bit hash state
  • S: displayed integer score

Step 1: Normalize Each Name

Each input uses Unicode NFKC normalization. Outer spaces are removed, repeated whitespace becomes one space, and letters are converted to lowercase using the en-US locale.

ni=normalize(Ni)n_i=normalize(N_i)

Step 2: Create an Order-Independent Pair

The two normalized names are sorted alphabetically and joined with a vertical bar.

C=sort(n1,n2)1  ∣  sort(n1,n2)2C=sort(n_1,n_2)_1\;|\;sort(n_1,n_2)_2

Because sorting happens before hashing, Taylor + Jordan and Jordan + Taylor create the same canonical pair.

Step 3: Apply the 32-Bit Hash-Style Update

h0=2166136261h_0=2166136261
hi=uint32((hi−1⊕ci)×16777619)h_i=uint32\left((h_{i-1}\oplus c_i)\times16777619\right)

The implementation iterates through Unicode code points. For the ASCII reference text “hello,” the function returns hexadecimal 4f9f2cab, matching the established FNV-1a reference vector.

Step 4: Convert the Hash to a Percentage

S=h mod 101S=h\bmod101

The possible integer remainders are 0 through 100. The calculator appends a percent sign for the game display, but the number is not a statistical probability or measured percentage.

Worked Process: Taylor and Jordan

  1. Normalize the names to “taylor” and “jordan.”
  2. Sort them to “jordan” then “taylor.”
  3. Join them as “jordan|taylor.”
  4. Update the unsigned 32-bit state for every character.
  5. Divide the final state by 101 and use the remainder as the score.

The Examples page displays the live engine result so it cannot drift from the implementation.

Formula Properties

  • Deterministic: identical normalized inputs produce an identical score.
  • Symmetric: reversing the names does not change the score.
  • Case-insensitive: capitalization does not change the score.
  • Space-normalized: outer and repeated spaces do not change the score.
  • Text-sensitive: other spelling changes can change the result.

Assumptions and Limitations

The formula deliberately converts text into a novelty number. It contains no model of attraction, personality, communication, trust, values, safety, or relationship outcomes. Score bands and positive messages are entertainment labels, not scientific classifications.