소프트웨어 모든 경우 도출하기
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 | - | - |
98924 | 윈 도 우| 프로그램 실행시 관리자권한으로 실행? [5] | 맹물 | 746 | 01-21 |
98923 | 하드웨어| 삼성데스크탑 그래픽카드 추가 [5] | 짱구박 | 615 | 01-21 |
98922 | 윈 도 우| 윈도우스토어에서 넷플릭스가 설치가안됩니다 [3] | MSTSC | 402 | 01-21 |
98921 | 윈 도 우| 윈도위 디펜서 페이지 사용할 수 없음 에 대해 | 허수야 | 342 | 01-21 |
98920 | 하드웨어| 윈도우7 만능윈도우 도구가필요함다 [1] | 넥스트타인 | 430 | 01-21 |
98919 | 소프트웨어| pe에 드라이버 통합하는 dismtools, 이 자료가 맞나요? [3] | brucex | 336 | 01-21 |
98918 | 윈 도 우| 진짜 황당하네요 화면이 안사라짐 [9] | 옹앙 | 746 | 01-20 |
98917 | 기 타| 벤토이 기본메뉴가 트리구조로 나오도록 할 수 있나요? [2] | 강토 | 359 | 01-20 |
98916 | 윈 도 우| Portable 관련 질문합니다. [2] | 윈도우95 | 359 | 01-20 |
98915 | 소프트웨어| 맥어드레스 변경 프로그램 문의 [2] | 뷰티블마인 | 314 | 01-20 |
98914 | 윈 도 우| PE 에서 디지털 인증을 한다는 개념이 있을까요? [5] | ton3d | 409 | 01-20 |
98913 | 하드웨어| 무슨 오류 인가요? [2] | H.Jiny | 324 | 01-20 |
98912 | 소프트웨어| gtx960 [3] | 천상천하 | 538 | 01-20 |
98911 | 기 타| 실시간tv [4] | 틀뭇이 | 1155 | 01-20 |
98910 | 소프트웨어| 토렌트 고수님 봐주세요 실행이 안돼요. [4] | JayJ | 448 | 01-20 |
98909 | 윈 도 우| 윈도우 메인 모니터 테스크바에 한영전환등 아이콘이 안보... [2] | joe | 197 | 01-20 |
98908 | 윈 도 우| 진짜 고수분 있나요 자동 창 배열 관련 [1] | ASDQWCCZ | 283 | 01-20 |
98907 | 소프트웨어| 아크로니스 트루이미지 질문 드립니다 [2] | 모노시티 | 354 | 01-19 |
98906 | 윈 도 우| 윈10과 윈11은 디지털 인증이 한 번만 하면 유지될까요? [8] | ton3d | 724 | 01-19 |
98905 | 소프트웨어| 나의 컴퓨터 파일을 상대방에게 다운로드 가능하게 하는법 [17] | 스피드맨 | 633 | 01-19 |
엑셀 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