Skip to content

Instantly share code, notes, and snippets.

@niccokunzmann
Last active February 11, 2019 08:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save niccokunzmann/8f608b82f20df684e2cc26a89dba9e51 to your computer and use it in GitHub Desktop.
Save niccokunzmann/8f608b82f20df684e2cc26a89dba9e51 to your computer and use it in GitHub Desktop.
Export respondent answers from survey monkey 2018-may-12 and compute the maximum participant number for 2 or more chosen dates.
user@programming:~/gists/subset$ ./find-biggest-common-subset-dudle.py # nur Ja, 3 Termine
total: 1331
17 22.02, 08.03, ... Fr ger. W. & 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 6 Leute. An 3 Terminen können 1 Leute.
17 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 9 Leute. An 3 Terminen können 1 Leute.
17 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 5 Leute. An 3 Terminen können 2 Leute.
17 22.02, 08.03, ... Fr ger. W. & 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 10 Leute.
16 18.02, 04.03, ... Mo gerade Wochen & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 4 Leute. An 3 Terminen können 1 Leute.
16 22.02, 08.03, ... Fr ger. W. & 23.02, 09.03, ... Sa ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 2 Leute. An 3 Terminen können 1 Leute.
16 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. & _02.03, 16.03, ... Sa ung. W. common: An 2 Terminen können 3 Leute. An 3 Terminen können 1 Leute.
16 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher & _02.03, 16.03, ... Sa ung. W. common: An 2 Terminen können 2 Leute. An 3 Terminen können 1 Leute.
16 24.02, 10.03, ... So ger. W. & 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 7 Leute. An 3 Terminen können 1 Leute.
16 20.02, 06.03, ... Mi ger. W. & 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 13 Leute. An 3 Terminen können 1 Leute.
16 20.02, 06.03, ... Mi ger. W. & 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 7 Leute. An 3 Terminen können 7 Leute.
16 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher & _03.03, 17.03, ... So ung. W. common: An 2 Terminen können 1 Leute. An 3 Terminen können 1 Leute.
16 18.02, 04.03, ... Mo gerade Wochen & 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 3 Leute. An 3 Terminen können 4 Leute.
16 23.02, 09.03, ... Sa ger. W. & 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 10 Leute. An 3 Terminen können 1 Leute.
16 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher & _02.03, 16.03, ... Sa ung. W. common: An 2 Terminen können 10 Leute. An 3 Terminen können 1 Leute.
This took 0 seconds. One more date takes 0 seconds.
user@programming:~/gists/subset$ ./find-biggest-common-subset-dudle.py # ja und vielleicht 3 Termine
total: 1331
17 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 2 Leute. An 3 Terminen können 6 Leute.
17 18.02, 04.03, ... Mo gerade Wochen & 23.02, 09.03, ... Sa ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 5 Leute. An 3 Terminen können 4 Leute.
17 23.02, 09.03, ... Sa ger. W. & 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 8 Leute. An 3 Terminen können 6 Leute.
17 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 4 Leute. An 3 Terminen können 6 Leute.
17 22.02, 08.03, ... Fr ger. W. & 23.02, 09.03, ... Sa ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 4 Leute. An 3 Terminen können 5 Leute.
17 18.02, 04.03, ... Mo gerade Wochen & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 3 Leute. An 3 Terminen können 5 Leute.
17 18.02, 04.03, ... Mo gerade Wochen & 20.02, 06.03, ... Mi ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 10 Leute. An 3 Terminen können 6 Leute.
17 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher & _03.03, 17.03, ... So ung. W. common: An 2 Terminen können 4 Leute. An 3 Terminen können 4 Leute.
17 18.02, 04.03, ... Mo gerade Wochen & 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 3 Leute. An 3 Terminen können 5 Leute.
17 18.02, 04.03, ... Mo gerade Wochen & 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 5 Leute. An 3 Terminen können 5 Leute.
17 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 6 Leute. An 3 Terminen können 7 Leute.
17 22.02, 08.03, ... Fr ger. W. & 24.02, 10.03, ... So ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 3 Leute. An 3 Terminen können 5 Leute.
17 20.02, 06.03, ... Mi ger. W. & 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 7 Leute. An 3 Terminen können 9 Leute.
17 20.02, 06.03, ... Mi ger. W. & 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 3 Leute. An 3 Terminen können 13 Leute.
17 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher & _02.03, 16.03, ... Sa ung. W. common: An 2 Terminen können 5 Leute. An 3 Terminen können 4 Leute.
This took 0 seconds. One more date takes 0 seconds.
user@programming:~/gists/subset$ ./find-biggest-common-subset-dudle.py # Ja und vielleicht 2 Termine
total: 121
16 25.02, 11.03, ... Mo ungerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 7 Leute.
16 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 1 Leute.
16 27.02, 13.03, ... Mi wie bisher & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 2 Leute.
16 26.02, 12.03 Die ung. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 9 Leute.
15 23.02, 09.03, ... Sa ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 3 Leute.
15 20.02, 06.03, ... Mi ger. W. & 25.02, 11.03, ... Mo ungerade Wochen common: An 2 Terminen können 7 Leute.
15 27.02, 13.03, ... Mi wie bisher & _03.03, 17.03, ... So ung. W. common: An 2 Terminen können 2 Leute.
15 20.02, 06.03, ... Mi ger. W. & 26.02, 12.03 Die ung. W. common: An 2 Terminen können 9 Leute.
15 27.02, 13.03, ... Mi wie bisher & _02.03, 16.03, ... Sa ung. W. common: An 2 Terminen können 3 Leute.
15 20.02, 06.03, ... Mi ger. W. & _01.03, 15.03, ... Fr ung. W. common: An 2 Terminen können 2 Leute.
15 24.02, 10.03, ... So ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 2 Leute.
15 20.02, 06.03, ... Mi ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 14 Leute.
15 20.02, 06.03, ... Mi ger. W. & 22.02, 08.03, ... Fr ger. W. common: An 2 Terminen können 1 Leute.
15 18.02, 04.03, ... Mo gerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 4 Leute.
14 20.02, 06.03, ... Mi ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 2 Leute.
This took 0 seconds. One more date takes 0 seconds.
user@programming:~/gists/subset$ ./find-biggest-common-subset-dudle.py # mittwoch wie bisher und gerade wochen,2 Termine. Keine Verbesserung bei 3 Terminen, nur Ja
total: 36
16 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 1 Leute.
15 24.02, 10.03, ... So ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 2 Leute.
15 20.02, 06.03, ... Mi ger. W. & 22.02, 08.03, ... Fr ger. W. common: An 2 Terminen können 1 Leute.
15 18.02, 04.03, ... Mo gerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 4 Leute.
15 20.02, 06.03, ... Mi ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 14 Leute.
15 23.02, 09.03, ... Sa ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 3 Leute.
14 20.02, 06.03, ... Mi ger. W. & 23.02, 09.03, ... Sa ger. W. common: An 2 Terminen können 3 Leute.
14 18.02, 04.03, ... Mo gerade Wochen & 20.02, 06.03, ... Mi ger. W. common: An 2 Terminen können 4 Leute.
14 20.02, 06.03, ... Mi ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 2 Leute.
6 18.02, 04.03, ... Mo gerade Wochen & 23.02, 09.03, ... Sa ger. W. common: An 2 Terminen können 1 Leute.
5 18.02, 04.03, ... Mo gerade Wochen & 22.02, 08.03, ... Fr ger. W. common: An 2 Terminen können 1 Leute.
5 18.02, 04.03, ... Mo gerade Wochen & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 1 Leute.
4 22.02, 08.03, ... Fr ger. W. & 23.02, 09.03, ... Sa ger. W. common: An 2 Terminen können 1 Leute.
3 23.02, 09.03, ... Sa ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 2 Leute.
3 22.02, 08.03, ... Fr ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 1 Leute.
This took 0 seconds. One more date takes 0 seconds.
user@programming:~/gists/subset$ ./find-biggest-common-subset-dudle.py # ja und vielleicht: keine Verbesserung gegenüber 3 Terminen.
total: 36
17 24.02, 10.03, ... So ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 6 Leute.
17 20.02, 06.03, ... Mi ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 16 Leute.
17 22.02, 08.03, ... Fr ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 7 Leute.
17 23.02, 09.03, ... Sa ger. W. & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 7 Leute.
17 18.02, 04.03, ... Mo gerade Wochen & 27.02, 13.03, ... Mi wie bisher common: An 2 Terminen können 6 Leute.
16 20.02, 06.03, ... Mi ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 6 Leute.
16 20.02, 06.03, ... Mi ger. W. & 23.02, 09.03, ... Sa ger. W. common: An 2 Terminen können 7 Leute.
16 20.02, 06.03, ... Mi ger. W. & 22.02, 08.03, ... Fr ger. W. common: An 2 Terminen können 7 Leute.
16 18.02, 04.03, ... Mo gerade Wochen & 20.02, 06.03, ... Mi ger. W. common: An 2 Terminen können 6 Leute.
9 18.02, 04.03, ... Mo gerade Wochen & 23.02, 09.03, ... Sa ger. W. common: An 2 Terminen können 4 Leute.
9 22.02, 08.03, ... Fr ger. W. & 23.02, 09.03, ... Sa ger. W. common: An 2 Terminen können 5 Leute.
8 18.02, 04.03, ... Mo gerade Wochen & 22.02, 08.03, ... Fr ger. W. common: An 2 Terminen können 5 Leute.
8 22.02, 08.03, ... Fr ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 5 Leute.
8 18.02, 04.03, ... Mo gerade Wochen & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 4 Leute.
7 23.02, 09.03, ... Sa ger. W. & 24.02, 10.03, ... So ger. W. common: An 2 Terminen können 6 Leute.
This took 0 seconds. One more date takes 0 seconds.
user@personal-3:~$ python3 biggest_common_subset.py # max_dates is 2
total: 5929
19 Q4 - Abends ( zwischen 17 und 19 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 3 Leute.
19 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 3 Leute.
19 Q2 - Späterer Abend (zwischen 19 und 21 Uhr) & Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr) common: An 2 Terminen können 2 Leute.
18 Q1 - Abends ( zwischen 17 und 19 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 1 Leute.
18 Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 1 Leute.
18 Q4 - Später Abend (zwischen 18 und 20 Uhr) & Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr) common: An 2 Terminen können 5 Leute.
18 Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 3 Leute.
18 Q4 - Späterer Abend (zwischen 19 und 21 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute.
18 Q2 - Nachmittag (zwischen 14 und 16 Uhr) & Q4 - Später Abend (zwischen 18 und 20 Uhr) common: An 2 Terminen können 1 Leute.
18 Q4 - Später Abend (zwischen 18 und 20 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute.
18 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) common: An 2 Terminen können 4 Leute.
18 Q1 - Früher Abend (zwischen 16 und 18 Uhr) & Q4 - Später Abend (zwischen 18 und 20 Uhr) common: An 2 Terminen können 3 Leute.
18 Q2 - Morgens (zwischen 9 und 11) & Q4 - Später Abend (zwischen 18 und 20 Uhr) common: An 2 Terminen können 2 Leute.
18 Q3 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Später Abend (zwischen 18 und 20 Uhr) common: An 2 Terminen können 3 Leute.
18 Q1 - Früher Abend (zwischen 16 und 18 Uhr) & Q2 - Späterer Abend (zwischen 19 und 21 Uhr) common: An 2 Terminen können 1 Leute.
This took 0 seconds. One more date takes 11 seconds.
user@personal-3:~$ nano biggest_common_subset.py # edit max_dates to 3
user@personal-3:~$ python3 biggest_common_subset.py
total: 456533
25 Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Morgens (zwischen 9 und 11) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 5 Leute.
25 Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 5 Leute.
24 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q2 - Morgens (zwischen 9 und 11) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 3 Leute. An 3 Terminen können 1 Leute.
24 Q2 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 4 Leute.
24 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q2 - Früher Abend (zwischen 16 und 18 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 5 Leute.
24 Q1 - Abends ( zwischen 17 und 19 Uhr) & Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 5 Leute.
24 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 7 Leute. An 3 Terminen können 1 Leute.
24 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 1 Leute.
24 Q4 - Abends ( zwischen 17 und 19 Uhr) & Q5 - Morgens (zwischen 9 und 11) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 3 Leute. An 3 Terminen können 2 Leute.
23 Q3 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Späterer Abend (zwischen 19 und 21 Uhr) & Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 1 Leute.
23 Q4 - Späterer Abend (zwischen 19 und 21 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 7 Leute. An 3 Terminen können 1 Leute.
23 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q2 - Abends ( zwischen 17 und 19 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 1 Leute.
23 Q1 - Früher Abend (zwischen 16 und 18 Uhr) & Q2 - Späterer Abend (zwischen 19 und 21 Uhr) & Q4 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 3 Leute.
23 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q5 - Mittags (zwischen 11 und 13 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 5 Leute. An 3 Terminen können 1 Leute.
23 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q2 - Früher Abend (zwischen 16 und 18 Uhr) & Q7 - Vormittags (zwischen 10 und 12) common: An 2 Terminen können 2 Leute.
This took 12 seconds. One more date takes 980 seconds.
user@personal-3:~$ python3 biggest_common_subset.py # max_dates is 4 you need 1.5GB RAM
total: 35153041
28 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 9 Leute. An 3 Terminen können 2 Leute.
28 Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 7 Leute. An 3 Terminen können 1 Leute.
28 Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr) & Q3 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) common: An 2 Terminen können 4 Leute. An 3 Terminen können 1 Leute.
27 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q2 - Morgens (zwischen 9 und 11) & Q5 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 1 Leute. An 4 Terminen können 1 Leute.
27 Q2 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q5 - Späterer Abend (zwischen 19 und 21 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 2 Leute.
27 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q2 - Später Nachmittag (zwischen 15 und 17 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 7 Leute. An 3 Terminen können 1 Leute.
27 Q2 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 3 Leute.
27 Q2 - Früher Abend (zwischen 16 und 18 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Morgens (zwischen 9 und 11) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 2 Leute.
27 Q1 - Morgens (zwischen 9 und 11) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 2 Leute.
27 Q3 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Morgens (zwischen 9 und 11) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 7 Leute. An 3 Terminen können 2 Leute.
27 Q1 - Abends ( zwischen 17 und 19 Uhr) & Q2 - Morgens (zwischen 9 und 11) & Q5 - Späterer Abend (zwischen 19 und 21 Uhr) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 6 Leute. An 3 Terminen können 1 Leute.
27 Q2 - Morgens (zwischen 9 und 11) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 8 Leute. An 3 Terminen können 1 Leute.
27 Q1 - Abends ( zwischen 17 und 19 Uhr) & Q2 - Später Nachmittag (zwischen 15 und 17 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 4 Leute. An 3 Terminen können 1 Leute.
27 Q1 - Später Abend (zwischen 18 und 20 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q7 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 7 Leute. An 3 Terminen können 1 Leute.
27 Q1 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Abends ( zwischen 17 und 19 Uhr) & Q4 - Vormittags (zwischen 10 und 12) & Q6 - Mittags (zwischen 11 und 13 Uhr) common: An 2 Terminen können 9 Leute. An 3 Terminen können 1 Leute.
This took 1011 seconds. One more date takes 77902 seconds.
#!/usr/bin/python3
import time
start = time.time()
# INPUT
# copy your response json here from the javascript
responses_mixed = {"vote c_no___":{"ajuvo":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," _01.03, 15.03, ... Fr ung. W."," _03.03, 17.03, ... So ung. W."],"hagen":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Felix G":[" 18.02, 04.03, ... Mo gerade Wochen"," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"christoph":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 26.02, 12.03 Die ung. W."," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"niklas":[" 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Martin":[" 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"SkyfaR":[" 18.02, 04.03, ... Mo gerade Wochen"," 20.02, 06.03, ... Mi ger. W."," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"baumwolltier":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Fnordberg":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Hbert":[" 18.02, 04.03, ... Mo gerade Wochen"," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Tim":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," _01.03, 15.03, ... Fr ung. W."],"Marie":[" 25.02, 11.03, ... Mo ungerade Wochen"],"Thias":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"alyona":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."]},"vote a_yes__":{"ajuvo":[" 20.02, 06.03, ... Mi ger. W."," 23.02, 09.03, ... Sa ger. W."," 27.02, 13.03, ... Mi wie bisher"," _02.03, 16.03, ... Sa ung. W."],"hagen":[" 20.02, 06.03, ... Mi ger. W."," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"Felix G":[" 20.02, 06.03, ... Mi ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"christoph":[" 20.02, 06.03, ... Mi ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 27.02, 13.03, ... Mi wie bisher"],"niklas":[" 18.02, 04.03, ... Mo gerade Wochen"," 20.02, 06.03, ... Mi ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"Martin":[" 18.02, 04.03, ... Mo gerade Wochen"," 20.02, 06.03, ... Mi ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"SkyfaR":[" 27.02, 13.03, ... Mi wie bisher"],"Nicco Kunzmann":[" 18.02, 04.03, ... Mo gerade Wochen"," 20.02, 06.03, ... Mi ger. W."," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 27.02, 13.03, ... Mi wie bisher"," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"baumwolltier":[" 20.02, 06.03, ... Mi ger. W."," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"hoobert":[" 18.02, 04.03, ... Mo gerade Wochen"," 20.02, 06.03, ... Mi ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"Fnordberg":[" 20.02, 06.03, ... Mi ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"," _01.03, 15.03, ... Fr ung. W."],"nebeninsel":[" 20.02, 06.03, ... Mi ger. W."," 27.02, 13.03, ... Mi wie bisher"],"Hbert":[" 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."],"Tim":[" 20.02, 06.03, ... Mi ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Marie":[" 22.02, 08.03, ... Fr ger. W."," _01.03, 15.03, ... Fr ung. W."],"Thias":[" 20.02, 06.03, ... Mi ger. W."," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"],"alyona":[" 20.02, 06.03, ... Mi ger. W."," 27.02, 13.03, ... Mi wie bisher"]},"vote b_maybe":{"Felix G":[" 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."],"Martin":[" 22.02, 08.03, ... Fr ger. W."," _01.03, 15.03, ... Fr ung. W."],"Nicco Kunzmann":[" 26.02, 12.03 Die ung. W."],"hoobert":[" 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"nebeninsel":[" 18.02, 04.03, ... Mo gerade Wochen"," 22.02, 08.03, ... Fr ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 25.02, 11.03, ... Mo ungerade Wochen"," 26.02, 12.03 Die ung. W."," _01.03, 15.03, ... Fr ung. W."," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."],"Hbert":[" 20.02, 06.03, ... Mi ger. W."," 22.02, 08.03, ... Fr ger. W."," 27.02, 13.03, ... Mi wie bisher"," _01.03, 15.03, ... Fr ung. W."],"Marie":[" 18.02, 04.03, ... Mo gerade Wochen"," 20.02, 06.03, ... Mi ger. W."," 23.02, 09.03, ... Sa ger. W."," 24.02, 10.03, ... So ger. W."," 26.02, 12.03 Die ung. W."," 27.02, 13.03, ... Mi wie bisher"," _02.03, 16.03, ... Sa ung. W."," _03.03, 17.03, ... So ung. W."]}}
#print(list(responses_mixed))
use_responses = ["vote a_yes__",
"vote b_maybe"
]
responses = {}
for response_type in use_responses:
for name, values in responses_mixed[response_type].items():
responses.setdefault(name, set())
responses[name] |= set(values)
all = set(answer for response in responses.values() for answer in response if "ung" not in answer)
#print("all answers:", all); exit(1)
# INPUT
# select specific answers
#select = "Q1 Q2 Q3 Q4 Q5 Q6 Q7".split()
#selected_answers = {answer for answer in all if any(selector in answer for selector in select)}
selected_answers = all
#print("selected answers", selected_answers)
# INPUT
# set the number of maximum dates to choose
max_dates = 2
import itertools
dates_to_respondents = {}
# INPUT
# compute best values
print("total:", len(selected_answers)**max_dates)
date_combinations = itertools.permutations(selected_answers, max_dates)
#print("combinating:")
for i, choice in enumerate(date_combinations):
# print("{} / {}".format(i, len(date_combinations)))
possible_dates = tuple(sorted(set(choice)))
# print(possible_dates)
respondents = {respondent for respondent, answers in responses.items() if any(possible_date in answers for possible_date in possible_dates)}
dates_to_respondents[possible_dates] = respondents
#print(dates_to_respondents)
def respondents_for_date(date):
return {respondent for respondent, dates in responses.items() if date in dates}
d2r = respondents_for_date
number_of_best_values = 15
best = list(sorted(dates_to_respondents, key=lambda choice: -len(dates_to_respondents[choice])))[:number_of_best_values]
import operator, collections
for choice in best:
overlapping = collections.defaultdict(set) # no of dates : respondents
for r, a in responses.items():
overlapping[len(set(a) & set(choice))].add(r)
print(len(dates_to_respondents[choice]), " & ".join(choice), "common:", " ".join("An {} Terminen können {} Leute.".format(k, len(v)) for k, v in overlapping.items() if k > 1))
duration = time.time() - start
print("This took {} seconds. One more date takes {} seconds.".format(int(duration), int(duration * len(selected_answers))))
#!/usr/bin/python3
import time
start = time.time()
# INPUT
# copy your response json here from the javascript
responses = {"Respondent #30 ":["Q3 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Vormittags (zwischen 10 und 12)","Q7 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q7 - Nachmittag (zwischen 14 und 16 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n2","Q9 - Campus Neues Palais\n3","Q9 - Campus Golm\n1","Q9 - In der Innenstadt Potsdams\n4","Q9 - In Babelsberg\n5"],"Respondent #31 ":["Q3 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Vormittags (zwischen 10 und 12)","Q7 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q7 - Nachmittag (zwischen 14 und 16 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n2","Q9 - Campus Neues Palais\n3","Q9 - Campus Golm\n1","Q9 - In der Innenstadt Potsdams\n4","Q9 - In Babelsberg\n5"],"Respondent #29 ":["Q1 - Vormittags (zwischen 10 und 12)","Q1 - Mittags (zwischen 11 und 13 Uhr)","Q1 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q1 - Nachmittag (zwischen 14 und 16 Uhr)","Q1 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q1 - Abends ( zwischen 17 und 19 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Mittags (zwischen 11 und 13 Uhr)","Q2 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q2 - Nachmittag (zwischen 14 und 16 Uhr)","Q2 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q3 - Vormittags (zwischen 10 und 12)","Q3 - Mittags (zwischen 11 und 13 Uhr)","Q3 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q3 - Nachmittag (zwischen 14 und 16 Uhr)","Q3 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q3 - Früher Abend (zwischen 16 und 18 Uhr)","Q3 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Vormittags (zwischen 10 und 12)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q4 - Nachmittag (zwischen 14 und 16 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q5 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Nachmittag (zwischen 14 und 16 Uhr)","Q6 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Abends ( zwischen 17 und 19 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - In der Innenstadt Potsdams\n2"],"Respondent #28 ":["Q1 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q2 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q3 - Vormittags (zwischen 10 und 12)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Vormittags (zwischen 10 und 12)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q8 - Ich würde gerne ein oder mehrere Kinder ÜBER 3 Jahren betreuuen lassen","Q9 - Campus Griebnitzsee\n1","Q9 - Campus Neues Palais\n4","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n2"],"Respondent #27 ":["Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n4","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n1","Q9 - In Babelsberg\n3"],"Respondent #26 ":["Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q1 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q3 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Vormittags (zwischen 10 und 12)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q6 - Morgens (zwischen 9 und 11)","Q6 - Vormittags (zwischen 10 und 12)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q6 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Nachmittag (zwischen 14 und 16 Uhr)","Q6 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Abends ( zwischen 17 und 19 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q6 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q7 - Morgens (zwischen 9 und 11)","Q7 - Vormittags (zwischen 10 und 12)","Q7 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q7 - Nachmittag (zwischen 14 und 16 Uhr)","Q7 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q7 - Früher Abend (zwischen 16 und 18 Uhr)","Q7 - Abends ( zwischen 17 und 19 Uhr)","Q7 - Später Abend (zwischen 18 und 20 Uhr)","Q7 - Späterer Abend (zwischen 19 und 21 Uhr)","Q7 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - In der Innenstadt Potsdams\n1"],"Respondent #25 ":["Q1 - Morgens (zwischen 9 und 11)","Q1 - Vormittags (zwischen 10 und 12)","Q1 - Mittags (zwischen 11 und 13 Uhr)","Q1 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q1 - Nachmittag (zwischen 14 und 16 Uhr)","Q1 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q4 - Nachmittag (zwischen 14 und 16 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Vormittags (zwischen 10 und 12)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q6 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Abends ( zwischen 17 und 19 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q6 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q7 - Vormittags (zwischen 10 und 12)","Q7 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Früher Abend (zwischen 16 und 18 Uhr)","Q7 - Abends ( zwischen 17 und 19 Uhr)","Q7 - Später Abend (zwischen 18 und 20 Uhr)","Q7 - Späterer Abend (zwischen 19 und 21 Uhr)","Q7 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n2","Q9 - Campus Neues Palais\n4","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n1"],"Respondent #24 ":["Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q3 - Nachmittag (zwischen 14 und 16 Uhr)","Q4 - Vormittags (zwischen 10 und 12)","Q5 - Vormittags (zwischen 10 und 12)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1"],"Respondent #23 ":["Q2 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q3 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Nachmittag (zwischen 14 und 16 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q6 - Vormittags (zwischen 10 und 12)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q6 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Nachmittag (zwischen 14 und 16 Uhr)","Q6 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Abends ( zwischen 17 und 19 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1"],"Respondent #22 ":["Q1 - Morgens (zwischen 9 und 11)","Q1 - Vormittags (zwischen 10 und 12)","Q1 - Mittags (zwischen 11 und 13 Uhr)","Q1 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q1 - Nachmittag (zwischen 14 und 16 Uhr)","Q1 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q1 - Abends ( zwischen 17 und 19 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q1 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q2 - Mittags (zwischen 11 und 13 Uhr)","Q2 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q2 - Nachmittag (zwischen 14 und 16 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q3 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Vormittags (zwischen 10 und 12)","Q5 - Morgens (zwischen 9 und 11)","Q7 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung."],"Respondent #21 ":["Q1 - Vormittags (zwischen 10 und 12)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Vormittags (zwischen 10 und 12)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n4","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n5"],"Respondent #20 ":["Q2 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q5 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n2","Q9 - Campus Neues Palais\n1","Q9 - Campus Golm\n3","Q9 - In der Innenstadt Potsdams\n4","Q9 - In Babelsberg\n5"],"Respondent #19 ":["Q1 - Nachmittag (zwischen 14 und 16 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q3 - Vormittags (zwischen 10 und 12)","Q3 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q6 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n5","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n1","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n4"],"Respondent #18 ":["Q1 - Morgens (zwischen 9 und 11)","Q1 - Vormittags (zwischen 10 und 12)","Q1 - Abends ( zwischen 17 und 19 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q1 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q2 - Morgens (zwischen 9 und 11)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q3 - Morgens (zwischen 9 und 11)","Q3 - Nachmittag (zwischen 14 und 16 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n5","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n4","Q9 - In der Innenstadt Potsdams\n1","Q9 - In Babelsberg\n3"],"Respondent #17 ":["Q1 - Mittags (zwischen 11 und 13 Uhr)","Q2 - Nachmittag (zwischen 14 und 16 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q3 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q7 - Später Abend (zwischen 18 und 20 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n4","Q9 - Campus Neues Palais\n1","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n2","Q9 - In Babelsberg\n3"],"Respondent #16 ":["Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q1 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q3 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q6 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q6 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - In der Innenstadt Potsdams\n2"],"Respondent #15 ":["Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q1 - Abends ( zwischen 17 und 19 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Nachmittag (zwischen 14 und 16 Uhr)","Q3 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - Campus Neues Palais\n3","Q9 - Campus Golm\n2","Q9 - In der Innenstadt Potsdams\n5","Q9 - In Babelsberg\n4"],"Respondent #14 ":["Q2 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Abends ( zwischen 17 und 19 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n5","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n4","Q9 - In der Innenstadt Potsdams\n1","Q9 - In Babelsberg\n3"],"Respondent #13 ":["Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Nachmittag (zwischen 14 und 16 Uhr)","Q3 - Morgens (zwischen 9 und 11)","Q3 - Vormittags (zwischen 10 und 12)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q6 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1"],"Respondent #12 ":["Q1 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q1 - Nachmittag (zwischen 14 und 16 Uhr)","Q1 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q2 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q6 - Morgens (zwischen 9 und 11)","Q6 - Vormittags (zwischen 10 und 12)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q6 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q6 - Nachmittag (zwischen 14 und 16 Uhr)","Q6 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Abends ( zwischen 17 und 19 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q7 - Morgens (zwischen 9 und 11)","Q7 - Vormittags (zwischen 10 und 12)","Q7 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q7 - Nachmittag (zwischen 14 und 16 Uhr)","Q7 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q7 - Früher Abend (zwischen 16 und 18 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n4","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n1","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n5"],"Respondent #11 ":["Q1 - Morgens (zwischen 9 und 11)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q2 - Morgens (zwischen 9 und 11)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q3 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Morgens (zwischen 9 und 11)","Q5 - Vormittags (zwischen 10 und 12)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q6 - Morgens (zwischen 9 und 11)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Morgens (zwischen 9 und 11)","Q7 - Vormittags (zwischen 10 und 12)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1"],"Respondent #10 ":["Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q1 - Abends ( zwischen 17 und 19 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q1 - Späterer Abend (zwischen 19 und 21 Uhr)","Q1 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q5 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q5 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q6 - Früher Abend (zwischen 16 und 18 Uhr)","Q6 - Abends ( zwischen 17 und 19 Uhr)","Q6 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Späterer Abend (zwischen 19 und 21 Uhr)","Q6 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q7 - Abends ( zwischen 17 und 19 Uhr)","Q7 - Später Abend (zwischen 18 und 20 Uhr)","Q7 - Späterer Abend (zwischen 19 und 21 Uhr)","Q7 - Sehr Später Abend (zwischen 20 und 22 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n3","Q9 - In der Innenstadt Potsdams\n4","Q9 - In Babelsberg\n5"],"Respondent #9 ":["Q1 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q1 - Nachmittag (zwischen 14 und 16 Uhr)","Q2 - Morgens (zwischen 9 und 11)","Q2 - Vormittags (zwischen 10 und 12)","Q4 - Vormittags (zwischen 10 und 12)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n2","Q9 - Campus Neues Palais\n1","Q9 - Campus Golm\n3","Q9 - In der Innenstadt Potsdams\n4","Q9 - In Babelsberg\n5"],"Respondent #8 ":["Q1 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Vormittags (zwischen 10 und 12)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - Campus Neues Palais\n4","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n2"],"Respondent #7 ":["Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n4","Q9 - Campus Neues Palais\n1","Q9 - Campus Golm\n2","Q9 - In der Innenstadt Potsdams\n3","Q9 - In Babelsberg\n5"],"Respondent #6 ":["Q2 - Morgens (zwischen 9 und 11)","Q2 - Vormittags (zwischen 10 und 12)","Q2 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q2 - Nachmittag (zwischen 14 und 16 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q4 - Vormittags (zwischen 10 und 12)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q4 - Nachmittag (zwischen 14 und 16 Uhr)","Q5 - Nachmittag (zwischen 14 und 16 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n3","Q9 - Campus Neues Palais\n1","Q9 - Campus Golm\n2","Q9 - In der Innenstadt Potsdams\n5","Q9 - In Babelsberg\n4"],"Respondent #5 ":["Q1 - Morgens (zwischen 9 und 11)","Q2 - Morgens (zwischen 9 und 11)","Q3 - Vormittags (zwischen 10 und 12)","Q3 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Morgens (zwischen 9 und 11)","Q5 - Morgens (zwischen 9 und 11)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n3","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n4","Q9 - In Babelsberg\n1"],"Respondent #4 ":["Q1 - Abends ( zwischen 17 und 19 Uhr)","Q1 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Später Abend (zwischen 18 und 20 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q4 - Später Abend (zwischen 18 und 20 Uhr)","Q4 - Späterer Abend (zwischen 19 und 21 Uhr)","Q5 - Früher Abend (zwischen 16 und 18 Uhr)","Q5 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Später Abend (zwischen 18 und 20 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n3","Q9 - Campus Neues Palais\n2","Q9 - Campus Golm\n5","Q9 - In der Innenstadt Potsdams\n1","Q9 - In Babelsberg\n4"],"Respondent #3 ":["Q1 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q1 - Früher Abend (zwischen 16 und 18 Uhr)","Q1 - Abends ( zwischen 17 und 19 Uhr)","Q2 - Späterer Abend (zwischen 19 und 21 Uhr)","Q3 - Früher Abend (zwischen 16 und 18 Uhr)","Q3 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Später Abend (zwischen 18 und 20 Uhr)","Q6 - Morgens (zwischen 9 und 11)","Q6 - Vormittags (zwischen 10 und 12)","Q6 - Mittags (zwischen 11 und 13 Uhr)","Q7 - Morgens (zwischen 9 und 11)","Q7 - Vormittags (zwischen 10 und 12)","Q7 - Mittags (zwischen 11 und 13 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n1","Q9 - In der Innenstadt Potsdams\n2"],"Respondent #2 ":["Q1 - Morgens (zwischen 9 und 11)","Q2 - Morgens (zwischen 9 und 11)","Q2 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Morgens (zwischen 9 und 11)","Q3 - Mittags (zwischen 11 und 13 Uhr)","Q3 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n5","Q9 - Campus Neues Palais\n3","Q9 - Campus Golm\n1","Q9 - In der Innenstadt Potsdams\n2","Q9 - In Babelsberg\n4"],"Respondent #1 ":["Q1 - Morgens (zwischen 9 und 11)","Q2 - Morgens (zwischen 9 und 11)","Q2 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q2 - Früher Abend (zwischen 16 und 18 Uhr)","Q2 - Abends ( zwischen 17 und 19 Uhr)","Q3 - Morgens (zwischen 9 und 11)","Q3 - Mittags (zwischen 11 und 13 Uhr)","Q3 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Mittags (zwischen 11 und 13 Uhr)","Q4 - Später Nachmittag (zwischen 15 und 17 Uhr)","Q4 - Früher Abend (zwischen 16 und 18 Uhr)","Q4 - Abends ( zwischen 17 und 19 Uhr)","Q5 - Mittags (zwischen 11 und 13 Uhr)","Q5 - Früher Nachmittag (zwischen 13 und 15 Uhr)","Q8 - Ich brauche keine Kinderbetreuung.","Q9 - Campus Griebnitzsee\n5","Q9 - Campus Neues Palais\n3","Q9 - Campus Golm\n1","Q9 - In der Innenstadt Potsdams\n2","Q9 - In Babelsberg\n4"]}
all = set(answer for response in responses.values() for answer in response)
#print("all answers:", all)
# INPUT
# select specific answers
select = "Q1 Q2 Q3 Q4 Q5 Q6 Q7".split()
selected_answers = {answer for answer in all if any(selector in answer for selector in select)}
#print("selected answers", selected_answers)
# INPUT
# set the number of maximum dates to choose
max_dates = 2
import itertools
dates_to_respondents = {}
# INPUT
# compute best values
print("total:", len(selected_answers)**max_dates)
date_combinations = itertools.permutations(selected_answers, max_dates)
#print("combinating:")
for i, choice in enumerate(date_combinations):
# print("{} / {}".format(i, len(date_combinations)))
possible_dates = tuple(sorted(set(choice)))
# print(possible_dates)
respondents = {respondent for respondent, answers in responses.items() if any(possible_date in answers for possible_date in possible_dates)}
dates_to_respondents[possible_dates] = respondents
#print(dates_to_respondents)
def respondents_for_date(date):
return {respondent for respondent, dates in responses.items() if date in dates}
d2r = respondents_for_date
number_of_best_values = 15
best = list(sorted(dates_to_respondents, key=lambda choice: -len(dates_to_respondents[choice])))[:number_of_best_values]
import operator, collections
for choice in best:
overlapping = collections.defaultdict(set) # no of dates : respondents
for r, a in responses.items():
overlapping[len(set(a) & set(choice))].add(r)
print(len(dates_to_respondents[choice]), " & ".join(choice), "common:", " ".join("An {} Terminen können {} Leute.".format(k, len(v)) for k, v in overlapping.items() if k > 1))
duration = time.time() - start
print("This took {} seconds. One more date takes {} seconds.".format(int(duration), int(duration * len(selected_answers))))
/*
* Execute this on the page of the survey, e.g. https://dudle.inf.tu-dresden.de/cccp-terminfindung-2019/
* It prints JSON.
*/
var result = {};
for (var e of document.getElementsByClassName("vote")) {
var t = e.title.split(":", 2);
if (!result[e.className]) {
result[e.className] = {};
}
if (!result[e.className][t[0]]) {
result[e.className][t[0]] = [];
}
result[e.className][t[0]].push(t[1]);
}
console.log(JSON.stringify(result));
/*
* Execute this line for each participant. The resulting console log will include a json of all answers.
*
*/
function answers(respondent) {var answers = []; Array.from(respondent.getElementsByClassName("response-question-container")).forEach(function(qa){ var title = qa.getElementsByClassName("question-title")[0].innerText; Array.from(qa.getElementsByClassName("response-list-item")).forEach(function(answer){ answers.push(title + " - " + answer.innerText) }) }); return answers}; var respondents = document.getElementsByClassName("respondent"); console.log("all answers", answers(respondents[1])); console.log("answers", answers(respondents[2])); var result = result || {}; result[document.getElementsByClassName("respondent-goto-menu-btn")[0].innerText] = answers(respondents[2]); console.log(JSON.stringify(result));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment