소프트웨어 모든 경우 도출하기
2020.09.14 03:56
안녕하세요 윈도우포럼 형님들
문자열 abc 가 있으면 사이에 점을 넣어서
abc
ab.c
a.bc
a.b.c
이런 식으로 결과를 볼수있는 방법 있을까요? 예를 들어 문자가 30개면 경우의 수가 536870912인데 컴퓨터가 그걸 처리해주는 프로그램이나 사이트, 아니면 엑셀이나 스크래치같은 걸로 어떻게 짜야하는지 알려주실 수 있을까요? 30개가 너무 많다면 더 소량도 괜찮습니다.
댓글 [7]
-
BecauseI 2020.09.14 07:03 -
황황 2020.09.14 14:45
답변 감사합니다
-
라랑 2020.09.14 09:02
제가 프로그래밍을 안해본지 너무 오래되서 어떻게 작성하는지 다 까먹었는데 알고리즘은 간단해보이는데요..
int str_length
str_length = 숫자의 자릿수 << 이거는 아예 모르겠네요
var_texture_var = 입력된 숫자를 문자화한 값을 대입하는 변수...
for(i=0, i=str_length, i++) {
포인터나 배열 선언하고 그 숫자까지의 문자만 출력하고 그 다음에 점 출력하고 그리고 나머지 출력하고
말은 쉬운데 작성법은 모르겠네요 ^^; 답변 안하느니만 못한건가 ㅠ.ㅠ 죄송합니다.
printf("i", \n)
}
-
황황 2020.09.14 14:46
답변 감사합니다
-
황황 2020.09.14 14:47
쉽지 않은 것 같네요ㅠㅠ
-
메리아 2020.09.14 15:27
기본적으로 비트연산에 해당되네요.
각 점을 0과 1로 생각하고
abc 3개인 경우 2^(3-1) = 4 개의 경우의 수.
즉, 비트값믈 가져올수만 있으면 볼 수 있겠네요.
0~2^(n-1) - 1 까지 숫자를 순서대로 읽어 이진수로 변환 후 0일땐 안찍고 1일땐 찍고 이런식으로 해야죠.
이 경우엔 0~3까지
00
01
10
11
값을 읽고 그 포인트에 따라 사이사이 찍으면 될듯.
설명은 되지만 막상 짤려고 하니까 헷갈리네요.
이진수 변환은
https://suninara.tistory.com/72
이거 이용하면 될듯.
근데 30개 정도 되면 결국 조합 갯수가 5억여개가 출력되어야하는데,
정확하게 어떤걸 원하시는건지 모르겠네요.
TXT파일로 출력하면 대강 어림잡아봐도 30GB 바이트짜리 TXT가 요구됩니다.
큰만큼 메모리에도 못 올려요.
정말 그걸 원하시는 건가요?
-
오후9시7분 2020.10.25 06:47
파이썬에 경우의 수를 뽑아주는 모듈이 있어서 파이썬으로 코드를 짜서 텍스트 파일에 저장하도록 했습니다.
중복되는 문자는 고려를 하지 않았습니다. 예를 들어, "ABCA",,,이런식으로 A가 2번 들어갈 경우는 예상한 결과와 다르게 출력됩니다.
중복되는 문자도 고려하려면 코드를 수정해야겠지요?
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
15352 | 기 타| 아이돌 인것 같은데 [2] | 열린하늘 | 414 | 11-17 |
15351 | 윈 도 우| 작업 스케줄러 자동인쇄 [7] | 버금차. | 414 | 07-27 |
15350 | 윈 도 우| 레지스트리 권한부여 배치파일 [6] | First. | 414 | 04-08 |
15349 | 윈 도 우| 나만의 install.wim 갱신방법 어떻게 하고 계신가요? [10] | nadaeri | 414 | 03-19 |
15348 | 윈 도 우| 20H2 업데이트 파일만 어떻게 받을수 있죠 [3] | sjsjlove | 414 | 03-19 |
15347 | 윈 도 우| PRIMO RAMDISK 설치시 윈도우 진입 불가.. [1] | 오소리v | 414 | 08-17 |
15346 | 소프트웨어| 멀티 모니터(4개)에서 지정키로 마우스 위치를 지정 모니터... [3] | 푸른하늘저 | 414 | 12-28 |
15345 | 윈 도 우| 윈도우10 운용체제 2개 사용 방법 문의 [5] | 키감 | 414 | 12-15 |
15344 | 윈 도 우| KJ님 PE 비디오카드 인식문제 [6] | rockumus | 414 | 11-12 |
15343 | 기 타| 공인인증서 폐기처리가 의도치 않게 된경우는? [5] | 부는바람 | 414 | 09-25 |
15342 | 소프트웨어| VHD 이용한 Win11 설치(듀얼) 및 문의 [8] | 안정 | 414 | 10-10 |
15341 | 윈 도 우| 윈도우10 설치 질문좀.. [3] | 좀머씨 | 414 | 01-16 |
15340 | 윈 도 우| 윈도우10에서 공유폴더를 네트워크상 특정 컴퓨터에서만 접... [1] | 이코누 | 414 | 12-18 |
15339 | 하드웨어| 메인보드 cpu호환 관련 [4] | 해비치 | 414 | 09-08 |
15338 | 윈 도 우| 윈도우 누적업데이트란? [1] | 럭키보이 | 414 | 08-29 |
15337 | 소프트웨어| SoftEther VPN 대용 프로그램이 뭐가 있을까요? [2] | 오랑케 | 414 | 07-18 |
15336 | 소프트웨어| 토렌트 업로드 속도 올리는방법 문의 [4] | 맹물 | 414 | 06-09 |
15335 | 윈 도 우| 윈10 1903 vm웨어 계속 차단 문제... [5] | 길바라기 | 414 | 04-25 |
15334 | 윈 도 우| 메인보드님 Windows10 Pro x64 19H11903_Build...문의 [4] | 나우25 | 414 | 03-30 |
15333 | 소프트웨어| 한달에 한번 컴이 미쳐 돌아가는데요..ㅜ.ㅜ [2] | 인석이 | 414 | 02-25 |
엑셀 vb 편집기(alt + F11) 을 이용해서 하드코딩식으로 하면 할수는 있으나
모든 경우의 수를 하기에는 개발고수님이 등장하셔야 합니다.
Sub AddString()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "test"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
Rng.Value = VBA.Left(Rng.Value, 1) & "." & VBA.Mid(Rng.Value, 2)
Rng.Value = VBA.Left(Rng.Value, 3) & "." & VBA.Mid(Rng.Value, 4)
Rng.Value = VBA.Left(Rng.Value, 5) & "." & VBA.Mid(Rng.Value, 6)
Next
End Sub
실행 F5
데이타 : 1234
결과 : 1.2.3.4