... I don't see why you'd want homosexuality as part of the gameplay. Lets be fair, it's just pointless and adds nothing to the game, ...
Well I use to name some of my dwarves after certain characters they match. One of the characters is a lesbian and so I thought that dwarf would be an even better match if she would be lesbian in DF as well. So that's how this whole idea evolved.
I am aware that there are more serious things which need to be done in DF than this, but I really like to read about my dwarves personalities and like to see some strange things happening by chance. Sexually queer behaviour would be one of such things.
I have tried to find out how probable it would be to have some sexually queer dwarves in a population of 100. If we assume the probability of sexual queerness is 0.04 (4% of the dwarves), there is ...
Chance to have exactly 0 queer dwarves in 100: 2%
Chance to have exactly 1 queer dwarves in 100: 7%
Chance to have exactly 2 queer dwarves in 100: 15%
Chance to have exactly 3 queer dwarves in 100: 20%
Chance to have exactly 4 queer dwarves in 100: 20%
Chance to have exactly 5 queer dwarves in 100: 16%
Chance to have exactly 6 queer dwarves in 100: 10%
Chance to have exactly 7 queer dwarves in 100: 6%
Chance to have exactly 8 queer dwarves in 100: 3%
Chance to have exactly 9 queer dwarves in 100: 1%
If somebody is interested in modelling this, here is the Python 3 script I used for that result :
#!/usr/bin/python
# -*- coding: UTF_8 -*-
# This Python 3 script models the dwarf populations with sexually queer dwarves.
# It finds out what probability is there to have a certain amount of
# dwarves who are sexually queer.
import random
# Let's have a population of dwarves
# set the number of them here
numberOfDwarvesInPopulation = 100
# How many populations do you want to test?
numberOfTests = 10000
# Now some general behavioral variables:
# The probability of being sexually queer:
queerprobability = 0.04
# From all the queers, this fraction will be homosexual
homoprobability = 0.5
# Those queers who are not homosexual will be bisexual
# Let's model a dwarf's sexual behaviour:
class Dwarf():
def __init__(self):
# Normally, a dwarf is not queer in any way:
self.isqueer = False
self.ishomosexual = False
self.isbisexual = False
# but there is a chance to be queer:
if random.random() <= queerprobability:
self.isqueer = True
# This dwarf is somehow queer, he may be a homosexual ...
if random.random() <= homoprobability:
self.ishomosexual = True
# ... or a bisexual
else:
self.isbisexual = True
# Prepare a histograms of queer dwarves
queerDwarves = list(map(lambda x: 0, range(numberOfDwarvesInPopulation)))
homosexualDwarves = list(map(lambda x: 0, range(numberOfDwarvesInPopulation)))
bisexualDwarves = list(map(lambda x: 0, range(numberOfDwarvesInPopulation)))
# Go through the population and count the queer ones:
def countTheQueers(population):
numberOfQueers = 0
numberOfHomosexuals = 0
numberOfBisexuals = 0
for dwarf in population:
if dwarf.isqueer:
numberOfQueers = numberOfQueers + 1
if dwarf.ishomosexual:
numberOfHomosexuals = numberOfHomosexuals + 1
if dwarf.isbisexual:
numberOfBisexuals = numberOfBisexuals + 1
return numberOfQueers, numberOfHomosexuals, numberOfBisexuals
# Do this several times:
for i in range(numberOfTests):
# have a population of dwarves
dwarfPopulation = set(map(lambda x: Dwarf(), range(numberOfDwarvesInPopulation)))
# count how many queers there are
numberOfQueers, numberOfHomosexuals, numberOfBisexuals = countTheQueers(dwarfPopulation)
# write it into the histograms
queerDwarves[numberOfQueers] = queerDwarves[numberOfQueers] + 1
homosexualDwarves[numberOfHomosexuals] = homosexualDwarves[numberOfHomosexuals] + 1
bisexualDwarves[numberOfBisexuals] = bisexualDwarves[numberOfBisexuals] + 1
# print the histograms:
for text, histogram in [("queer", queerDwarves), ("homosexual", homosexualDwarves), ("bisexual", bisexualDwarves)]:
print(text, "Dwarves:")
for numberOfDwarves in range(len(histogram)):
if histogram[numberOfDwarves] != 0:
print("Chance to have exactly", str(numberOfDwarves), str(text), "dwarves in", str(numberOfDwarvesInPopulation)+":", str(round((histogram[numberOfDwarves]/numberOfTests) * 100))+"%")
print()