Skip to content

Instantly share code, notes, and snippets.

@aomoriringo
Last active March 31, 2016 12:11
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 aomoriringo/6ef6eb6f2cd888e1ae8fe8a91bb0248b to your computer and use it in GitHub Desktop.
Save aomoriringo/6ef6eb6f2cd888e1ae8fe8a91bb0248b to your computer and use it in GitHub Desktop.
mulder2
# -*- coding: utf-8
import random
from itertools import chain, izip_longest
from more_itertools import chunked
from math import ceil
def mulder2():
s = u"モルダー あなた 疲れてる のよ".split()
random.shuffle(s)
s2 = darui(s)
s2.insert(2, u"、")
return "".join(s2)
def darui(l):
daru = sum([divide_rough(x) for x in l], [])
mae = daru[::2]
ato = daru[1::2]
if random.randint(0,1):
rand_swap(mae,0,1)
rand_swap(mae,2,3)
else:
rand_swap(mae,0,2)
rand_swap(mae,1,3)
return list(roundrobin(mae, ato))
def rand_swap(l, idx1, idx2):
if random.randint(0,1):
l[idx1], l[idx2] = l[idx2], l[idx1]
def roundrobin(*iterables):
sentinel = object()
return (x for x in chain(*izip_longest(fillvalue=sentinel, *iterables)) if x is not sentinel)
def divide_rough(l):
return _join(chunked(l, int(ceil(len(l)/2.0))))
def _join(l):
return map(lambda x:"".join(x), l)
i = 0
s = None
while s != u"モルダー、あなた疲れてるのよ":
s = mulder2()
print(u"{0}: {1}".format(i, s))
i += 1
0: モルダー、のてるあなた疲れよ
1: あなよ、のた疲れダーモルてる
2: のダー、疲れてるモルよあなた
3: モルダー、疲れてるあなたのよ
4: 疲れよ、のてるあなダーモルた
5: あなた、のよモルダー疲れてる
6: のた、あなよ疲れダーモルてる
7: あなた、のダー疲れてるモルよ
8: モルた、のてるあなダー疲れよ
9: あなた、のよモルダー疲れてる
10: あなた、モルダー疲れよのてる
11: のよ、疲れてるあなダーモルた
12: 疲れダー、あなよモルてるのた
13: あなダー、疲れよモルたのてる
14: あなよ、モルダーのた疲れてる
15: あなた、モルてるのよ疲れダー
16: あなた、モルよ疲れてるのダー
17: モルダー、のてるあなた疲れよ
18: モルよ、あなたのダー疲れてる
19: モルダー、疲れてるあなよのた
20: 疲れてる、モルダーあなたのよ
21: モルダー、あなてるのよ疲れた
22: のてる、疲れよあなたモルダー
23: あなた、のよ疲れてるモルダー
24: モルダー、あなた疲れよのてる
25: あなた、疲れてるのよモルダー
26: モルダー、のよ疲れてるあなた
27: あなよ、モルダーのた疲れてる
28: モルてる、のた疲れダーあなよ
29: 疲れてる、のダーあなたモルよ
30: 疲れてる、のよモルたあなダー
31: 疲れた、のダーあなてるモルよ
32: あなた、のよモルダー疲れてる
33: 疲れた、モルダーあなてるのよ
34: 疲れてる、のたモルダーあなよ
35: あなダー、モルた疲れよのてる
36: 疲れよ、あなたのてるモルダー
37: モルダー、のよ疲れたあなてる
38: 疲れた、あなてるのよモルダー
39: あなた、のダー疲れてるモルよ
40: 疲れてる、のよモルたあなダー
41: のよ、疲れてるあなたモルダー
42: あなた、疲れてるモルダーのよ
43: のよ、あなたモルダー疲れてる
44: 疲れダー、のたモルてるあなよ
45: 疲れてる、モルよあなたのダー
46: あなてる、モルよ疲れたのダー
47: モルてる、疲れダーあなたのよ
48: あなよ、疲れてるのたモルダー
49: 疲れた、あなてるモルダーのよ
50: のよ、モルダーあなた疲れてる
51: のよ、あなダー疲れてるモルた
52: モルダー、のよあなた疲れてる
53: のよ、あなた疲れダーモルてる
54: 疲れた、モルダーあなてるのよ
55: 疲れてる、あなたモルよのダー
56: モルよ、疲れてるのダーあなた
57: 疲れよ、のてるモルたあなダー
58: モルた、疲れよあなダーのてる
59: 疲れよ、あなダーのてるモルた
60: 疲れてる、のよモルダーあなた
61: 疲れてる、あなたのよモルダー
62: モルダー、疲れたのよあなてる
63: のダー、あなたモルよ疲れてる
64: 疲れてる、のよモルたあなダー
65: のよ、あなた疲れてるモルダー
66: 疲れた、のよあなてるモルダー
67: あなよ、のた疲れてるモルダー
68: のよ、あなた疲れてるモルダー
69: 疲れてる、モルたのよあなダー
70: 疲れよ、のてるあなダーモルた
71: モルダー、のよあなた疲れてる
72: のダー、疲れたモルよあなてる
73: 疲れてる、のよモルダーあなた
74: のよ、モルてるあなた疲れダー
75: あなダー、疲れてるモルたのよ
76: のよ、あなダー疲れてるモルた
77: モルダー、のた疲れてるあなよ
78: あなよ、のたモルてる疲れダー
79: 疲れた、のダーあなてるモルよ
80: のた、モルてるあなよ疲れダー
81: 疲れてる、モルダーあなたのよ
82: のてる、疲れよあなダーモルた
83: モルダー、あなたのよ疲れてる
84: モルダー、のた疲れてるあなよ
85: モルた、あなダーのよ疲れてる
86: モルよ、あなたのダー疲れてる
87: モルダー、疲れてるのよあなた
88: あなた、モルダーのてる疲れよ
89: のてる、疲れよあなたモルダー
90: あなた、のよ疲れてるモルダー
91: のよ、モルダーあなてる疲れた
92: あなダー、疲れよモルたのてる
93: モルダー、のよあなた疲れてる
94: 疲れた、あなてるモルダーのよ
95: のよ、モルた疲れてるあなダー
96: あなた、モルてるのよ疲れダー
97: あなダー、モルたのよ疲れてる
98: 疲れてる、あなよモルダーのた
99: 疲れてる、モルダーのよあなた
100: あなた、モルダーのよ疲れてる
101: モルダー、疲れてるのよあなた
102: あなた、疲れてるモルダーのよ
103: モルダー、あなた疲れよのてる
104: モルてる、疲れダーのよあなた
105: のよ、あなたモルダー疲れてる
106: のダー、モルよあなた疲れてる
107: 疲れた、あなてるのダーモルよ
108: のた、モルてるあなよ疲れダー
109: あなダー、のてるモルた疲れよ
110: モルダー、のよ疲れたあなてる
111: のよ、あなた疲れてるモルダー
112: のてる、疲れよモルダーあなた
113: あなた、モルダー疲れてるのよ
114: のよ、あなた疲れダーモルてる
115: 疲れてる、モルダーあなよのた
116: モルよ、あなてるのダー疲れた
117: 疲れた、あなてるのダーモルよ
118: モルてる、疲れダーあなたのよ
119: のよ、疲れてるモルダーあなた
120: 疲れよ、のてるあなたモルダー
121: あなた、モルダー疲れてるのよ
122: のてる、疲れよあなたモルダー
123: 疲れよ、モルダーのてるあなた
124: 疲れダー、あなたモルてるのよ
125: 疲れた、のダーあなてるモルよ
126: のダー、疲れたモルよあなてる
127: のよ、疲れてるモルたあなダー
128: モルダー、あなた疲れてるのよ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment