메시지의 오류를 시뮬레이트하고 싶습니다 (예 : 1000010011 => 1010000011). 파이썬에서 이것을 구현할 수있는 방법이 있습니까? 나는 다음을 시도해 보았다 :가우시안 분포를 사용하여 목록을 셔플하는 방법
import random
a = "1011101101"
b = [el for el in a] # b = ['1', '0', '1', '1', '1', '0', '1', '1', '0', '1']
random.shuffle(b)
print b # b = ['0', '1', '1', '1', '0', '1', '1', '1', '1', '0']
random.shuffle(b, random.random)
print b # b = ['1', '1', '0', '1', '1', '0', '1', '0', '1', '1']
나는 보통/가우스 배포판으로 재주문을하고 싶다. 예는 :
import random
a = "1011101101"
b = [el for el in a] # b = ['1', '0', '1', '1', '1', '0', '1', '1', '0', '1']
random.shuffle(b,random.gauss(0.5,0.1))
print b # b = ['1', '0', '1', '1', '0', '0', '1', '1', '1', '1'] <= assume this is Gaussian distributed...
# OR
c = random.gauss(0.5,0.1)
random.shuffle(b,c)
print b # b = ['0', '0', '1', '1', '1', '0', '1', '1', '1', '1'] <= assume this is also Gaussian distributed...
그러나이 작동하지 않습니다, 나는 메시지를 얻을 :/코멘트
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\random.py", line 287, in shuffle
j = int(random() * (i+1))
TypeError: 'float' object is not callable
어떤 제안을 크게 감상 할 수있다.
주
감사합니다 : 난 단지 (: 1000010011 => 1010000011 예) 여기에 다시 주문 오류를 요구하고있다. 그러나 나는 또한 시뮬레이션 버스트 에러 계획입니다 (예 : 1000010011 => 1011111011), 단일 이벤트 (예 : 1000010011 => 1000010011) 등
기타 관련 질문 :의 Python: binary string error simulation
'b'에 대한 목록 이해를 간단한 'b = list (a)'로 바꿀 수 있습니다. – Droogans