소프트웨어 모든 경우 도출하기
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 | - | - |
99167 | 윈 도 우| WindowsXPE147_23H2 빌드 크롬 부분 에러 도와주세요 [12] | 마로94 | 231 | 02-20 |
99166 | 윈 도 우| 내컴퓨터 속성 창이 안열립니다. [4] | 갠지스의잔 | 295 | 02-20 |
99165 | 소프트웨어| 잘 되던 사케이비디오플러스가 말을 안 듣습니다 [2] | 이어도 | 220 | 02-20 |
99164 | 윈 도 우| 잘 되던 WOL이 인됩니다. [3] | asklee | 435 | 02-20 |
99163 | 윈 도 우| wim파일 무인설치 관련 [3] | 소문 | 348 | 02-20 |
99162 | 소프트웨어| 중복 파일 검색 [2] | 번개 | 227 | 02-20 |
99161 | 윈 도 우| 만능이미지 만들때 관련 질문입니다. [4] | 소문 | 294 | 02-19 |
99160 | 윈 도 우| 유튜브 메인화면을 관리할 수 있는 방법이 있나요? [2] | 사단장 | 177 | 02-19 |
99159 | 윈 도 우| eset 이 켜져있으면 윈도우 디펜더가 꺼져야되는데 | MSTSC | 145 | 02-19 |
99158 | 윈 도 우| 오디오 입력 출력 고쳤습니다. | 자슬내등사 | 174 | 02-19 |
99157 | 소프트웨어| 혹시 이것 비번 아시는 분? OOSK121.rar(281KB) [3] | 타천사둘리 | 361 | 02-19 |
99156 | 윈 도 우| esp파티션 만들기가 있는 파티션 프로그램 있나요? [4] | 강토 | 253 | 02-19 |
99155 | 소프트웨어| 만능윈도우 시 크롬 시작그룹 특정 페이지 또는 페이지 모... | 넥스트타인 | 87 | 02-19 |
99154 | 소프트웨어| Windows에 설치된 프로그램 복제 [5] | 삼사일언 | 217 | 02-19 |
99153 | 소프트웨어| 크롬 다운로드 히스토리 안남기는법 없나요? [4] | 컴알못러 | 347 | 02-19 |
99152 | 소프트웨어| 포토샵 실행시에.... [4] | Pureunsan | 380 | 02-19 |
99151 | 윈 도 우| 바이러스 감염 확장자에 .lkfr 로 바꼈어요! 해결 방법이 ... [4] | dansan | 637 | 02-19 |
99150 | 윈 도 우| 제어판 아이콘은 있는데 실핼이 안되네요 [5] | 깨비꼬레아 | 301 | 02-19 |
99149 | 윈 도 우| 윈도우 로그인 관련 질문입니다 [3] | asklee | 223 | 02-19 |
99148 | 윈 도 우| 크롬 탭 닫을때 왜 창이 최대화로 되나요? [1] | MSTSC | 124 | 02-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