티스토리 툴바

  
NOTICE 

문제는 

출처는 http://ggomjirak.tistory.com/224

대략 값이 얼마인지 궁금했다.


#!/usr/bin/env python

import math

#   .
#   |\
#   |o\
#   |  \
#   |   \
#   |    \
#   |     \
#   |      \
#   |       \
#   |        \
#   ._________\____
#             P
#
#          pi   /         n \
#   o_n = ---- |  1 - 0.5    |
#           4   \           /
#
def P(n):
    return math.tan((math.pi/4)*(1 - math.pow(.5,n)))


#      1   /  inf              \ 
# S = --- |   sum P    -  P     |
#      2   \  k=0  2k+1    2k  / 
sum = 0.0
for i in xrange(0, 1000):
    sum += P(2*i+1) - P(2*i)
    print i, sum
sum /= 2
print sum


987 0.628571508269
988 0.628571508269
989 0.628571508269
990 0.628571508269
991 0.628571508269
992 0.628571508269
993 0.628571508269
994 0.628571508269
995 0.628571508269
996 0.628571508269
997 0.628571508269
998 0.628571508269
999 0.628571508269
0.314285754134

C:\Documents and Settings\me>

Trackback :: http://secuprint.tistory.com/trackback/102 관련글 쓰기

http://groups.google.com/group/microsoft.public.development.device.drivers/msg/67e084bd105c0eb6?dmode=source

From: "Maxim S. Shatskih" <ma...@storagecraft.com>
References: <OLokCZG1EHA.1524@TK2MSFTNGP09.phx.gbl>
Subject: Re: raster operation codes
Date: Sun, 28 Nov 2004 00:14:21 +0300
Lines: 55
Organization: StorageCraft
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Message-ID: <eX2ShXM1EHA.1300@TK2MSFTNGP14.phx.gbl>
Newsgroups: microsoft.public.development.device.drivers
NNTP-Posting-Host: ppp3-129.pppoe.mtu-net.ru 81.195.3.129
Path: g2news1.google.com!news1.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.freenet.de!151.189.20.20.MISMATCH!newsfeed.arcor.de!newsfeed01.sul.t-online.de!newsfeed00.sul.t-online.de!t-online.de!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP14.phx.gbl

    First the binary ROPs. They are 4bit values.

   우선 바이너리 ROP (ROP2)는 4비트 값이다.

    There are 4 possible combinations of Src and Dst bits  - S=1:D=1, S=0:D=1,
S=1:D=0, S=0:D=0. Each bit position in the binary ROP means - whether the
result bit will be 1 for such a combination of Src and Dst bits, or will be 0.
So, 4 bits in binary ROP, which is 16 values.

   소스와 데스티네이션 비트에 대해 4가지 조합이 있다. S=1:D=1, S=0:D=1,
S=1:D=0, S=0:D=0. 바이너리 ROP의 각 비트는 이 조합에 대한 결과가 1인지 0
인지를 나타낸다. 그래서 바이너리 ROP는 4비트이고, 16가지 값이 있다.

    Samples:
    샘플 :

    a) BLACK. Result bits are always 0, regardless of Src and Dst. So, 0000 -
ROP code 0x0.
    a) BLACK. 결과는 Src, Dst에 상관 없이 0이다. 그래서, 0000 - ROP code 0x0

    b) WHITE. Result bits are always 1, regardless of Src and Dst. So, 1111 -
ROP code 0xf.

    b) WHITE. 결과는 Src, Dst에 상관없이 1이다. 그래서 1111 - ROP code 0xf

    c) NOP. Result bits are 1 if Dst is 1 and 0 if Dst is 0, Src is irrelevant. So, 1010 - ROP code 0xa.

    c) NOP. 결과는 Dst가 1이면 0, Dst가 0이면 1이고 Src는 상관이 없다. 그래서 1010 - ROP code 0xa.

    d) COPY. Result bits are 1 if Src is 1 and 0 if Src is 0, Dst is irrelevant. So, 1100 - ROP code 0xc.

    d) COPY. 결과는 Src가 1이면 1, Src가 0이면 0이 되고 Dst와는 상관이 없다. 그래서 1100 - ROP code 0xc.

    e) AND. Result bit is 1 only if both Src and Dst are 1, and 0 otherwise. So, 1000 - ROP code 0x8.

    e) AND. 결과는 Src와 Dst가 모두 1일 때에만 1이고 다른 조합은 모두 0. 그래서  1000 - ROP code 0x8.

    f) OR. Result bit is 0 only if both Src and Dst are 0, and 1 otherwise. So,
1110 - ROP code 0xe.

    f) OR. 결과는 Src와 Dst가 0일 때에만 0, 나머지는 모두 1. 그래서 1110 - ROP code 0xe.

    g) XOR. Result bit is 0 if Src and Dst are the same, and 1 otherwise. So,
0110 - ROP code 0x6.

    g) XOR. 결과는 Src와 Dst가 같을 때에는 0, 나머지는 1. 그래서 0110 - ROP code 0x6.

    The ROP2 codes from WINGDI.H are biased up by 1.

    WINGDI.H의 ROP2 코드는 위 값에서 1씩 더했다.

    Now the ternary ROPs. A byte, senior nibble is ROP2 for Pat = 1, junior
is - ROP2 for Pat = 0. So, the pattern-less ROP3 have the same both nibbles -
like 0xcc for SRCCOPY and 0x88 for SRCAND.

    ROP 3는. 위쪽 니블은 Pat 가 1일 때의 ROP2 이고, 아래 니블은 Pat 가 0
일 때의 ROP2이다. 그래서, 패턴에 상관없는 ROP3 는 위아래 니블이 동일하다.
SRCCOPY 는 0xcc이고, SRCAND는 0x88이다.

    PATCOPY has 0xf0 - 1 if Pat is 1, 0 otherwise. And so on.

    PATCOPY는 0xf0 이고, Pat이 1이면 1, 아니면 0이다.

    The other bytes in ROP3 values from WINGDI.H are not known to me, possibly they are the legacy from Win16 due to some internal Win16's stuff.

   WINGDI.H에 있는 ROP3 값의 다른 바이트는 잘 모르겠다. 아마 Win16에서 Win16
내부와 관련있는 무엇이 남아있는 게 아닐까?

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
ma...@storagecraft.com
http://www.storagecraft.com

번역 DwYoon

저작자 표시 동일 조건 변경 허락
Trackback :: http://secuprint.tistory.com/trackback/101 관련글 쓰기
* device : 장치, 디바이스
* device name : 장치이름, 디바이스이름, 디바이스네임, 디바이스명
* namespace : 명칭공간, 네임스페이스, 이름공간
* Object Manager : 개체 관리자, 객체 관리자, 오브젝트 매니저, 오브젝트 관리자

디바이스네임과 심볼릭 링크 이해하기
Understanding Device Names and Symbolic Links

요약
SUMMARY

하드디스크, 직렬포트, 병렬포트 같은 디바이스(장치)는 기본적으로 내부 윈도우즈 NT 디바이스네임을 갖고, 옵션으로 MS-DOS 디바이스네임도 가질 수 있다. 이 두가지 이름은 윈도우즈 NT 개체 관리자 (Windows NT Object Manager) 이름공간(namespace)에 있게 된다. 윈도우즈 NT 자신과 커널모드 드라이버는 NT 디바이스네임을 사용하지만, Win32 프로그램은 MS-DOS 디바이스네임을 사용해야 한다. MS-DOS 디바이스네임은 아래쪽에 있는 NT 디바이스네임을 가리키는 심볼릭 링크이다. 본 문서는 디바이스네임과 심볼릭 링크, 그리고 Win32 프로그램이 심볼릭 링크를 어떻게 만들거나 없앨 수 있을지를 설명한다.
Devices like hard disks, serial ports, and parallel ports have an internal Windows NT device name and may optionally have an MS-DOS device name. These names are located in the Windows NT Object Manager's namespace. While Windows NT itself and kernel-mode drivers use NT device names, Win32 programs must use the MS-DOS device names. The MS-DOS device name is a symbolic link to the underlying NT device name. This article describes device names, symbolic links, and how Win32 programs can create and remove symbolic links.

부가 정보
MORE INFORMATION

내부 NT 디바이스네임
Internal NT Device Names

커널모드 장치 드라이버가 로드되면, 드라이버는 초기화 루틴에서 윈도우즈 NT 개체 관리자(Object Manager)에 디바이스네임을 등록한다. 이 이름은 윈도우즈 NT 디바이스네임을 가르킨다. 윈도우즈 NT의 커널모드 컴포넌트와 커널모드 드라이버는 윈도우즈 NT 디바이스네임으로 장치를 지정하게 된다. 이 이름은 \Device\CDRom0 이나 \Device\Serial0 가 같은 형식으로 되어 있으며, 개체 관리자의 이름공간(네임스페이스) \device 디렉토리에 존재한다.
When a kernel-mode device driver is loaded, its initialization routine registers a device name with Windows NT's Object Manager. This name is referred to as the Windows NT device name. The kernel-mode components of Windows NT and kernel-mode drivers reference devices by their Windows NT device names. These names have a format, such as \Device\CDRom0 and \Device\Serial0 and also exist in the \device directory of the Object Manager's namespace.

Win32 프로그램은 내부 윈도우즈 NT 디바이스네임으로 장치에 접근할 수 없다. 왜냐하면 Win32 서브시스템과 Win32 API는 A:, C:, COM1:, LPT1: 같이 친숙한 드라이브 알파벳과 MS-DOS 장치명을 필요로 하기 때문이다. Wind32 프로그램이 윈도우즈 NT 디바이스네임을 사용하지 않지만, 장치에 접근하기 위해 MS-DOS 디바이스네임을 정의하거나 다시 없앨 수 있다. 나아가 MS-DOS 디바이스네임과 연결되어 있는 내부 윈도우즈 NT 디바이스네임을 알아낼 수도 있다. 본 아티클 "Symbolic Links" 섹션의 예제 코드가 이를 어떻게 하는지 보여준다.
Win32 programs cannot use internal Windows NT device names to access devices because the Win32 subsystem and Win32 API require the more familiar drive letters and MS-DOS device names, such as A:, C:, COM1:, and LPT1:. Although Win32 programs may not use Windows NT device names, they can however, define and remove MS-DOS device names to access devices. They can also retrieve the internal Windows NT device name associated with an MS-DOS device name. The example code in the "Symbolic Links" section of this article describes how to do this.

개체 관리자가 장치를 비롯한 시스템 개체의 이름을 어떻게 가져오는지를 잘 이해하려면, 플랱폼 SDK의 WinObj.exe 툴로 개체 관리자의 이름공간을 들여다 봐도 좋다.
To gain a better understanding of how the Object Manager tracks names to devices and other system objects, you can view the Object Manager's namespace with the WinObj.exe tool in the Platform SDK.

MS-DOS 장치 이름
MS-DOS Device Names

Win32 프로그램은 드라이브, 직렬포트, 병렬포트 등의 디바이스를 MS-DOS 디바이스네임을 통해 사용한다. 디스크 드라이버의 경우, A:, C: 같은 드라이브 알파벳이고, 직렬 및 병렬포트에서는 COM1:, COM2:, LPT1: 같은 이름을 사용한다. 윈도우즈 NT 디바이스네임에서 처럼, 이 명칭은 개체 관리자 네임스페이스에 있게 된다. 하지만, 이들은 \?? 디렉토리에 있어서 사용자모드 Win32 프로그램에게도 보인다.
Win32 programs use devices like drives, serial ports, and parallel ports through their MS-DOS device names. For disk drives, these are drive letters like A: and C:. For serial and parallel ports these are names like COM1:, COM2:, and LPT1:. Like Windows NT device names, these names reside in the Object Manager's namespace, but in the \?? directory, which is visible to user-mode Win32 programs.

MS-DOS 디바이스네임이 윈도우즈 NT 디바이스네임과 다른 점은 MS-DOS 디바이스네임은 윈도우즈 NT 커널이나 커널모드 드라이버에 의해 사용되지 않는다는 것이다. MS-DOS 디바이스네임의 목적은 Win32 프로그램이 익숙한 드라이버명이나 장치명으로 윈도우즈 NT 디바이스네임을 가르키기 위함이다. 예를 들면, COM1으로 윈도우즈 NT 장치를 접근한다. 따라서 MS-DOS 디바이스네임을 윈도우즈 NT 디바이스네임으로의 "심볼 링크"로 부른다. 즉, MS-DOS 디바이스네임은 개체관리자 \?? 디렉토리에 존재하고, 개체관리자 \device 디렉토리에 있는 윈도우즈 NT 디바이스네임을 가리킨다.
What makes MS-DOS device names different from Windows NT device names is that they are not used by the Windows NT kernel or kernel-mode drivers. Their purpose is to refer to Windows NT device names so that Win32 programs can use the familiar drive letters and device names; for example, COM1:, to access the Windows NT devices. Therefore, MS-DOS device names are called "symbolic links" to Windows NT device names. That is, an MS-DOS device name exists in the Object Manager's \?? directory and points to a Windows NT device name in the Object Manager's \device directory.

MS-DOS 디바이스네임 한 개는 한 개 이상의 내부 윈도우즈 NT 장치를 가리킬 수 없다. 그렇지만, MS-DOS 디바이스네임 여러 개가 한 개의 장치를 가리키는 것은 괜찮다. 예를 들어, C:는 하나의 파티션만 가리킬 수 있지만, D:, E:, Z: 같이 다른 드라이버 알파벳으로 동일한 파티션을 가리킬 수 있다.
Each MS-DOS device name can point to at most one internal Windows NT device. However, multiple MS-DOS device names can point to a single device. For example, while C: can only point to a single partition, it is possible to have two or more drive letters, like D:, E:, and Z:, point to the same partition.

심볼 링크
Symbolic Links

시스템이 생성한 심볼 링크는 레지스트리에 보관되기 때문에 재시작해도 계속 살아있다. 프로그램은 DefineDosDevice() API를 이용해서 심볼 링크를 만들 수도 있다. 이 링크는 링크에 대한 정보를 가진 레지스트리가 만들어지지 않는 한은 시스템이 꺼지기 전까지만 유효하다. 한 개의 윈도우즈 NT 디바이스 네임으로 여러 개의 심볼 링크가 있어도 된다. 그러나, 시스템이 내부 윈도우즈 NT 디바이스에 지정한 MS-DOS 디바이스 네임만이 재부팅을 해도 유지된다. 따라서, 하나의 CD-ROM 드라이버를 가리키는 여러 개의 드라이브 알파벹 심볼링크를 만들 수 있지만, 나머지 드라이브 알파벹은 시스템이 꺼지기 전까지만 살아있다.
Symbolic links created by the system persist across computer restarts because they are stored in the registry. Programs may also create symbolic links with the DefineDosDevice() API. These links are valid only until the computer is restarted or turned off unless the registry keys containing information about the links are updated.
There can be multiple symbolic links to a Windows NT device name. However, only the MS-DOS device name that the system initially assigned to the internal Windows NT device remains across reboots. Therefore, it is possible to create additional symbolic links that assign multiple drive letters to a single CD-ROM drive, but the additional drive letters only remain until the machine is turned off or restarted.

Win32 프로그램은 QueryDosDevice() 에 MS-DOS 디바이스 네임을 인자로 호출하여 특정 MS-DOS 디바이스네임에 연결된 윈도우즈 NT 디바이스 네임을 가져올 수 있다. 아래가 예제 코드다.
Win32 programs can retrieve the Windows NT device name that is associated with a specific MS-DOS device name by calling QueryDosDevice() with the MS-DOS device name. Following is example code that shows how to do this:

char szNtDeviceName[MAX_PATH];

if (QueryDosDevice ("C:", szNtDeviceName, MAX_PATH))
{
   printf ("C: is linked to %s\n", szNtDeviceName);
}
               
Win32 프로그램은 DefineDosDevice() 를 호출하여 심볼 링크를 생성, 삭제할 수 있다. 심볼 링크를 새로 만들려면, DDD_RAW_TARGET_PATH 플랙을 세워서 DefineDosDevice 를 호출한다. 심볼 링크를 없애려면, DDD_REMOVE_DEFINITION과 DDD_RAW_TARGET_PATH 플랙을 세워서 호출한다. 아래 샘플코드에서 이 두가지 조작을 예시한다.
Win32 programs can create and delete symbolic links by calling DefineDosDevice(). To create a symbolic link, call DefineDosDevice with the DDD_RAW_TARGET_PATH flag. To remove a symbolic link, call it with the DDD_REMOVE_DEFINITION and DDD_RAW_TARGET_PATH flags. The following sample program demonstrates both of these operations:

/*
   DDD

      This sample shows how to associate an MS-DOS device name with a
      Windows NT device name. The association is a symbolic link between
      device names stored in the Object Manager's namespace. Applications
      use the MS-DOS device name, but Windows NT and kernel-mode drivers
      use the Windows NT device name. 

   Usage:
      ddd <MS-DOS Device Name> <NT Device Name>
      ddd -r <MS-DOS Device Name>

   NOTE: If the MS-DOS device name is a driver letter, the trailing
   backlash is not accepted by DefineDosDevice or QueryDosDevice.

   NOTE: The MS-DOS device name is defined only until the computer is
   restarted.

   To make the drive letter associations permanent on Window NT 4.0, you
   have to update HKEY_LOCAL_MACHINE\SYSTEM\DISK\Information. However,
   the contents of the value are undocumented.

   On Windows 2000, you have to use the Volume Mount Point APIs.
*/

#define WIN32_LEAN_AND_MEAN /* Reduce number of system headers parsed */
                            /* during build. */

#include <windows.h>
#include <stdio.h>

void main (int argc, char **argv)
{
   char * pszDosDeviceName,
        * pszNtDeviceName;

   bool  fRemoveDeviceName = false;
   bool  fResult;

   /*
      Command-line parsing.
        1) Make sure correct number of arguments are supplied.
        2) See if you should add or remove the MS-DOS Device Name.
   */
   if (argc != 3)
   {
      printf("\nusage: %s <DOS device name> <NT device name>    to add\n",
             argv[0]);
      printf("usage: %s [-r] <DOS device name>                to remove\n",
             argv[0]);
      printf("\n\texample: %s d: \\device\\cdrom0\n", argv[0]);
      return;
   }

   fRemoveDeviceName = !lstrcmpi (argv[1], "-r");


   /* Now, add/remove the DOS device name. */
   if (fRemoveDeviceName)
   {
      /*
         Remove the MS-DOS device name. First, get the name of the Windows
         NT device from the symbolic link, then delete the symbolic link.
        
      */
      pszDosDeviceName = argv[2];

      pszNtDeviceName = (char *)LocalAlloc (LPTR, MAX_PATH);

      fResult = QueryDosDevice (pszDosDeviceName, pszNtDeviceName,
                                MAX_PATH);
      if (fResult)
      {
         fResult = DefineDosDevice (DDD_RAW_TARGET_PATH|
                                    DDD_REMOVE_DEFINITION|
                                    DDD_EXACT_MATCH_ON_REMOVE,
                                    pszDosDeviceName, pszNtDeviceName);
      }
      if (!fResult)
         printf("error %lu: could not remove %s\n",
                GetLastError(), pszDosDeviceName);

      LocalFree (pszNtDeviceName);
   }
   else
   {
      /* Add the DOS device name */

      pszDosDeviceName = argv[1];
      pszNtDeviceName  = argv[2];

      fResult = DefineDosDevice (DDD_RAW_TARGET_PATH, pszDosDeviceName,
                                 pszNtDeviceName);
      if (!fResult)
         printf("error %lu: could not link %s to %s\n",
                GetLastError(), pszDosDeviceName, pszNtDeviceName);
   }

}

http://gogo-tutu.spaces.live.com/Blog/cns!9D0B8AC72BF8002F!124.entry
               


Trackback :: http://secuprint.tistory.com/trackback/100 관련글 쓰기

VC 8.0 런타임 (vcredist) 패키지 몰래 인스톨하기


얼마전에 비주얼 C++ 8.0 런타임 재배포 셑업 패키지의 사일런트 설치 (몰래 설치) 옵션에 대해 포스팅을 했다. (원문의 번역임에 주의) 이 포스팅을 썼을 때, 난 비주얼 스튜디오 2005를 설치하여 깔리는 %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bootstrapper\Packages 디렉토리에 있는 버전의 vcredist_x86.exe, vcredist_x64.exe, vcredist_ia64.exe 의 명령행 옵션을 기준으로 작성했었다.

그러나, 한 고객이 얼마전에 내가 모르던 점을 알려주었다. 웹으로 다운로드할 수 있는 VC 런타임 재배포 패키지 스탠드얼론 버전은 좀 다르게 패키징 되어 있어서, 이전 포스팅에서 설명한 몰래 설치방법의 명령행 옵션이 먹지 않는다. 즉, 스탠드얼론 버전은 EULA를 먼저 보여주고 실제 실행되는 메인 셑업 패키지가 풀려 실행되도록 한 겹 더 싸여있다. 비주얼 스튜디오 2005에 포함된 패키지는 두겹으로 싸여있지 않았다.

그래서, 여기 수정된 VC 8.0 런타임 재배포 패키지에 대한 몰래 설치법이 있다. 비주얼 스튜디오 2005에 포함된 패키지를 사용한다면, 이전 포스팅의 명령행 스위치를 사용해도 된다.

하지만, 스탠드얼론 VC 8.0 재배포 패키지를 다운로드 했다면, 명령행 옵션을 조금 바꿔야 한다. 아래 명령으로 오리지널 스탠드얼론 VC 8.0 재배포 패키지를 설치할 수 있다.

  • For x86: vcredist_x86.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
  • For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
  • For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
아래 명령으로는 비주얼 스튜디오 2005 SP1 스탠드얼론 VC 8.0 재배포 패키지를 설치할 수 있다.

  • For x86: vcredist_x86.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
  • For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
  • For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
VC 런타임 패키지를 언어텐디드 모드 (작은 프로그레스바를 보여주지만 사용자 인터렉션은 요구하지 않는 모드)로 설치하려면, /qn 스위치를 /qb로 바꾸면 된다. 프로그레스바가 취소 버튼을 보이지 않길 원한다면, /qn 스위치를 /qb!로 바꾸어 주면 된다.

http://blogs.msdn.com/astebner/archive/2007/02/07/update-regarding-silent-install-of-the-vc-8-0-runtime-vcredist-packages.aspx

Update regarding silent install of the VC 8.0 runtime (vcredist) packages

A while back, I posted this item on my blog that describes options for silent installation of the Visual C++ 8.0 runtime redistributable setup packages.  When I investigated this issue and wrote that blog post, I based the command line parameters on the versions of vcredist_x86.exe, vcredist_x64.exe and vcredist_ia64.exe that are included in the directory %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bootstrapper\Packages when installing Visual Studio 2005.

However, a customer recently alerted me to an issue that I wasn't aware of previously.  The standalone versions of the VC runtime redistributable packages that are available for download via the web are packaged differently, and so the command lines that I previously documented for silent installation will not work with those versions of the packages.  Essentially, the standalone versions are wrapped in a second self-extracting EXE that displays a EULA before allowing extraction and execution of the main setup package, whereas the packages included as part of Visual Studio 2005 directly launch setup and are not doubly wrapped.

Therefore, here are some amended silent install instructions for the VC 8.0 runtime redistributable packages.  If you are using the packages included as a part of Visual Studio 2005, you can continue to use the silent install switches from my previous blog post.

However, if you have downloaded the standalone VC 8.0 redistributable packages, you will need to modify the command lines slightly.  The following command lines can be used to install the original release of the standalone VC 8.0 redistributable packages:

    * For x86: vcredist_x86.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
    * For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
    * For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "

The following command lines can be used to install the Visual Studio 2005 SP1 release of the standalone VC 8.0 redistributable packages:

    * For x86: vcredist_x86.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
    * For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
    * For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "

If you would like to install the VC runtime packages in unattended mode (which will show a small progress bar but not require any user interaction), you can change the /qn switch above to /qb.  If you would like the progress bar to not show a cancel button, then you can change the /qn switch above to /qb!


Trackback :: http://secuprint.tistory.com/trackback/99 관련글 쓰기
박태욱
VC_RED, VCREDIST 이 파일이 C 드라이브에 깔려있는데 이거 때문인가요? eula.1042.txt
2009/02/11 01:30
secuprint 가 이걸 깔고 있느냐는 질문이라면: 아니오.

2009/02/17 11:16

http://projecteuler.net/index.php?section=problems&id=207

어떤 자연수 k에 대해 4t = 2t + k 의 정수 분할이 존재한다. 이 때, 4t와 2t는 모두 정수여야 하며, t는 실수여야 한다. t가 정수이면 완벽하다(perfect)고 한다.

자연수 m에 대해 P(m)을 m 이하의 k에 대한 분할 중 완벽한 것의 비율이라고 하자. P(m)이 1/12345 보다 작아지는 가장 작은 m을 구하는 것이 문제이다.

문제번역은 http://koyul.egloos.com/4606224 에서.

1. 엑셀로 풀어보는 것도 재미있겠더라. 해봤다. 차트에서 2의 정수승인 숫자에서 그래프가 불쑥불쑥 일어서는 걸 확인해야 한다.

사용자 삽입 이미지
  1. P'(2n+1 - 1) = n / ( 2n+1 - 1 - 1 ) : 조건에 맞는 최소의 n은 17이었다.
  2. P'(2n + r) = n / ( 2n + r - 1 ) : n에 17을 넣고. 조건에 맞는 r을 구해 봤더니, 78795였다. 여기서 해당하는 m을 찾아냈다.
Trackback :: http://secuprint.tistory.com/trackback/98 관련글 쓰기
 이전  12345 ... 20   다음 

fotowall :: ncloud RSS Feeds today : 4   yesterday : 6
total : 10,040