Speed dating strategy

dating

Now here is a question. Suppose you want to get married, and you go to a speed dating session. How do you maximise your chances of marrying the best person you will meet? There is a simple rule here: if you move on from one person to the next, you destroy any prospect of marrying the person you have just moved on from. And, of course, when you start you have no idea of knowing who you are going to meet. And continuing to keep it simple, let’s suppose that any proposal you make will be accepted.

A standard strategy is this: you reject the first few people that you meet, regardless of whether you like them or not. Then what you do after that is to marry the first person you meet who is better than anyone you have met before.

But how many is a few? Is it 10% of the people you are going to meet? There is a danger here of setting your benchmark too low; it is quite likely that the first person you meet who is better than any of that first 10% is not going to be as good as someone that you could have met later.

What about 90%? Here, there is a different danger. You are very likely to have set the benchmark too high – none of the remaining 10% are going to be as good as the people you have already rejected, and so you are going to have to marry the last person you meet – however ghastly – in order to avoid being left on the shelf.

So what is the optimum percentage? I decided to test it. Not literally, of course, but virtually, writing some code to get my computer doing the dating[1]. Here is my first run. I assumed that you are going to have 25 dates. I set the value of each person you are going to meet by multiplying a random value between zero and one by another random value between zero and one, and multiplying that by hundred. So any given date might have a value of between 0 and 100[2].

A lot, of course, is down to chance, and in order to get a reasonably smooth result, I ran the test through 100 iterations, in each case testing percentage values between 1 and 99[3].dating

I had previously read that the answer was 37%, and that might be right. But my results suggest that your best prospect of success lies within a fairly broad range of between about 10% and about 40%. In other words, it is a perfectly sensible strategy to reject the first 10% of people you meet, and then married the next best one after that, or to leave it as late as the first 40% of people you meet. Anywhere in this range, the value of the person you marry averages out at about 55. That is 55 of whatever you like. 55 units of sex appeal, probably. If you wait until you have worked your way through about 80% of your dating field, you’re more likely to end up with someone with less than 30 units of sex appeal.

So here is the moral. Make a guess as to how many people you might date, and don’t marry any of the first 10% of them. If you haven’t got married after you have worked your way through 40% of your potential field, your prospects slowly start to decline.

In due course, in the real world, if have missed the first boat, you are going to start looking at widows and divorcees. Who may well be precisely the sort of people who married one of their first 10%, and eventually came to realise that this was a mistake. The ones who got divorced are probably a better bet than the ones who decided to bump their unwelcome spouses off.

 

 

[1] The code for each run is thus:

IF ! USED(“people”)

USE people IN 0

ENDIF

IF ! USED(“theseresults”)

USE theseresults IN 0

ENDIF

SELECT theseresults

ZAP

 

FOR j = 1 TO thisform.spinner3.value

thisform.label2.caption = STR(j)

SET SAFETY off

thisform.command1.click && reset all the people

*SET SAFETY on

SELECT people

GO top

vmax = 1

vbest = 0

SCAN FOR people.id <= thisform.spinner1.Value*thisform.spinner2.Value/100

IF vslow = .t.

thisform.label3.Caption = STR(people.id)

ENDIF

vmax = MAX(vmax,people.value)

vbest = vmax

IF vslow = .t.

thisform.label1.Caption = “Date ” + ALLTRIM(STR(people.id)) + “; best value is ” + ALLTRIM(STR(vmax))

WAIT “” TIMEOUT .5

endif

ENDSCAN

 

vfound = .f.

vvalue = 0

 

scan for people.id > thisform.spinner1.Value*thisform.spinner2.Value/100 &&.and. vlooking = .t.    && go through all the rest of the dates

IF vslow = .t.

thisform.label3.Caption = STR(people.id)

ENDIF

vbest = MAX(vbest,people.value)

IF vslow = .t.

thisform.label1.Caption = “Date ” + ALLTRIM(STR(people.id)) + “; best value is ” + ALLTRIM(STR(vmax)) + “. This one is ” + ALLTRIM(STR(people.value))

WAIT “” TIMEOUT .5

ENDIF

IF people.value > vmax .and. vfound = .f.       && i.e. better than anyone else and not yet married

vfound = .t.

IF vslow = .t.

thisform.label1.Caption = “Iteration ” + alltrim(STR(j)) + “. Marrying Date ” + ALLTRIM(STR(people.id)) + “. Value is ” + ALLTRIM(STR(people.value))

WAIT “” TIMEOUT 2

endif

vvalue = people.value

vid = people.id

ENDIF

IF people.id = thisform.spinner1.value .and. vfound = .f.   &&I.e. last date AND still NOT married

vvalue = people.value

vid = people.id

ENDIF

 

ENDSCAN

SELECT theseresults

APPEND blank

replace theseresults.iteration WITH j

replace theseresults.benchmark WITH vmax

replace theseresults.value WITH vvalue

IF theseresults.value = 0

replace theseresults.value WITH people.value    && i.e. value of the last person

endif

replace theseresults.dates WITH vid

 

IF vfound = .f.

replace theseresults.noone WITH .t.

ENDIF

IF vbest > theseresults.value .and. vfound = .t.

replace theseresults.missedout WITH .t.

ENDIF

ENDFOR

 

thisform.score.click

[2] Thus:

IF ! USED(“people”)

USE people IN 0

ENDIF

SELECT people

ZAP

for i = 1 to thisform.spinner1.Value

APPEND BLANK

replace people.id WITH RECNO()

replace people.value WITH RAND()*RAND()*100

endfor

 

[3] So:

IF .NOT. USED(“allresults”)

USE allresults IN 0

ENDIF

SELECT allresults

 

VSLOW = .F.

THISFORM.SPINNER2.Value = 1

SELECT allresults

zap

FOR k = 1 TO 99

thisform.command2.click

thisform.spinner2.Value = thisform.spinner2.value + 1

ENDFOR

 

vstring = “C:\SCIENCE\DATES\” + DTOC(DATETIME())

EXPORT TO ALLTRIM(vstring) TYPE XL5

? CHR(7)

Advertisements

Leave a comment

Filed under Culture, Manners, Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s