C言語でロト6予想プログラム作成

このエントリーをはてなブックマークに追加
1名無しさん@夢いっぱい
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int GetRandom(int min,int max);

int main(void)
{
int i;

srand((unsigned int)time(NULL));

for (i = 0;i < 100;i++) {
printf("%03d\n",GetRandom(0,999));
}

return 0;
}

int GetRandom(int min,int max)
{
return min + (int)(rand()*(max-min+1.0)/(1.0+RAND_MAX));
}

これを実行するとナンバーズ3100回試行
ロト6はむずい・・・
2名無しさん@夢いっぱい:2006/09/18(月) 02:18:45 ID:bC3GzcWi
言語の問題なのか?
3名無しさん@夢いっぱい:2006/09/18(月) 02:20:51 ID:7H0s5HK4
明日仕事だから寝る!
4名無しさん@夢いっぱい:2006/09/18(月) 02:22:42 ID:CbjB5Cia
stdlib.hのrand()は、つかいもんにならない
5名無しさん@夢いっぱい:2006/09/18(月) 02:27:40 ID:e8VRFwBo
#include <chinpo.h>
6名無しさん@夢いっぱい:2006/09/18(月) 11:36:45 ID:N6sdA750
ここ石豆の気配がするな。
7名無しさん@夢いっぱい:2006/09/18(月) 11:46:38 ID:ivMn79LN
『良い乱数・悪い乱数』
ttp://www001.upp.so-net.ne.jp/isaku/rand.html
「C言語標準ライブラリの乱数rand( )は質に問題があり、ゲームでも使わないのが普通」

「乱数ではメルセンヌ・ツイスタ」

『 Mersenne Twister: A random number generator (since 1997/10)』
ttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
8名無し:2006/09/19(火) 09:40:01 ID:GJuEXCln
このスレッドは重複です。以下のスレッドに移動願います。

ロト6の予想ソフトウェア作るぜ
ttp://money4.2ch.net/test/read.cgi/loto/1141575854/
9名無しさん@夢いっぱい:2006/09/19(火) 21:25:30 ID:RhTmZqWh
このスレはC言語を指定してるので安心だ
10名無しさん@夢いっぱい:2006/09/22(金) 23:12:33 ID:8EWubpJz
ttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/mt19937ar.html メルセンヌ・ツイスタ
gzipped tar-file of these files: mt19937ar.sep.tgz .
                       ↑      
                     この圧縮ファイルをダウンロードする。

WindowsパソコンにCygwinをインストールした状態でtar(xzfオプション)により展開した。
$ tar xzf mt19937ar.sep.tgz
$ ls -l mt*
-rw-------  1 UserName  なし     5996 Apr 26 2005 mt19937ar.c
-rw-------  1 UserName  なし     2928 Apr 26 2005 mt19937ar.h
-rw-------  1 UserName  なし    22465 Mar 2 2004 mt19937ar.out
-rwxr-xr-x  1 UserName  なし    15433 Sep 19 23:38 mt19937ar.sep.tgz
-rw-------  1 UserName  なし     2539 Apr 26 2005 mtTest.c
11名無しさん@夢いっぱい:2006/09/22(金) 23:34:42 ID:Bfz5G5SZ
>>9
スレッドが立てられた日付はこちらの方が後であり、
>>8のスレッドでも問題なく話ができることを考えると
削除ガイドライン
ttp://info.2ch.net/guide/adv.html
の要件は満たしていると言える。

ただ現在の宝くじ板は過疎であり、スレッド保持上限値にかなり余裕があり
多少の重複スレや駄スレが立っても、そのせいで有用なスレッドがはじきだされる
心配はなく、少数の潔癖症の方々が気分を悪くするだけで大した問題ではない
と思われる。
12石豆 ◆urzs4gq/xc :2006/09/23(土) 22:39:19 ID:FNmFKtdB
>>11を言い直してみる。

このスレッドが扱う話題は>>8のスレッドの話題の範囲に完全に含まれる。
そして>>8のスレッドはこのスレッドが建つ前からあり、
建った時点において>>8のスレッドが他の言語によるプログラムの
話題に占有されていたという事態は見受けられない。つまり新たにスレッドを建てる
までもなく、ここでの話は>>8のスレッドですることができた。
>>1は建てる必要のないスレッドを建ててしまった。
しかし宝くじ板のスレッド数上限800にはまだ余裕があり、今回は大目に見てもいいだろう。
13名無しさん@夢いっぱい:2006/09/24(日) 20:24:53 ID:1YEhFxnW
夢ロトくんは攪拌してからボールの列を形成して6個摘出するが、
以下のプログラムでは攪拌しないで列からメルセンヌ・ツイスタにより6個摘出する。
(予想ではなく6個でたらめに摘出する。)

main()
1.43個のボールをノードとする線形リストを形成する。
2.6個のボールを摘出する。
3.工程1および工程2を反復する。

pLine()
1.何番目のボールを摘出するか、ノードの番号iNを決定する。
2.iN番目のボールの値(文字列)を配列に記憶する。
3.iN番目のボールを破棄して線形リストを短縮する。
4.工程1、工程2、工程3を反復する。
5.配列をソートする。
6.表示を開始する行以降である場合、配列の要素からなる1行を出力する。

【使用法】引き数の個数が4個ではない場合、使用例を表示する。
mtNtoR 43 6 1001 1020

ロト6のボールの総数:43
摘出するボールの個数:6
表示を開始する行番号:1001
反復する回数:1020

この使用例では20行表示される。メルセンヌ・ツイスタの設定を変更するにはmtNtoR.cにおいて
/* メルセンヌ・ツイスタの設定 */
 unsigned long init[4] = {0x123, 0x234, 0x345, 0x456}, length = 4;
を変更してコンパイルする。
14名無しさん@夢いっぱい:2006/09/24(日) 20:25:47 ID:1YEhFxnW
/* 【ファイル名】mtNtoR.h
bcc32 -emtNtoR mtNtoR.c pNew.c pLine.c iPick.c mt19937ar.c
gcc -o mtntor mtNtoR.c pNew.c pLine.c iPick.c mt19937ar.c
*/
#define USAGE "mtNtoR 43 6 1001 1020\n"
#define EXTRACT 43/* EXTRACT ≦ BALL_COUNT */
#define BALL_COUNT 43
#define DIGITS 3
#define WEIGHT 14.09
#define SKIP 1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "mt19937ar.h"

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};

int iCompare(const void *p, const void *p2) {
 return strcmp((char *)p, (char *)p2);
}
extern sBall *pNew(char *, double);
extern sBall *pAdd(sBall *, sBall *);
extern void FreeAll(sBall *);
extern sBall *pLine(sBall *, int, int, int);
15名無しさん@夢いっぱい:2006/09/24(日) 20:26:32 ID:1YEhFxnW
/* 【ファイル名】mtNtoR.c */
#include "mtNtoR.h"
int main(int argc, char *argv[]) {
 sBall *pMin;
 sBall *p;
 char cBall[BALL_COUNT][DIGITS];
 int i, iCount, iE, iRepeat, iLine, iShow, iSkip;
 char *pStop;
 char *pBall;
/* メルセンヌ・ツイスタの設定 */
 unsigned long init[4] = {0x123, 0x234, 0x345, 0x456}, length = 4;
/* 入力 */
 switch(argc) {
 case 5:
  iCount = (int)strtol(argv[1], &pStop, 0);/* ボールの総数 */
  if(iCount > BALL_COUNT) {
   fprintf(stderr, "main(): iCount > BALL_COUNT\n");
   exit(EXIT_FAILURE);
  }
  iE = (int)strtol(argv[2], &pStop, 0);/* 摘出する個数 */
  iShow = (int)strtol(argv[3], &pStop, 0);/* 表示を開始する行 */
  iRepeat = (int)strtol(argv[4], &pStop, 0);/* 反復する回数 */
  break;
 default:
  fprintf(stderr, USAGE);
  exit(EXIT_FAILURE);
 }
/* 設定 */
 for(i=0; i<iCount; ) {
  pBall = &cBall[i][0];
  sprintf(pBall, "%02d", ++i);/* cBall[0] = "01", cBall[42] = "43" */
 }/* ボールの数値(最小値は1であり最大値はiCountである)を文字列として記憶した */
 init_by_array(init, length);/* メルセンヌ・ツイスタの初期化 */
/* 反復(注1) */
 iSkip = SKIP;/* 表示しない */
 for(iLine = 1; iLine <= iRepeat; iLine++) {
  pMin = NULL;/* ボールが無い状態 */
  for(i = iCount - 1; i >= 0; i--) {/* 最大値のボールから順に生成、連結する */
   pBall = &cBall[i][0];
   p = pNew(pBall, WEIGHT);/* ボールを生成した */
   pMin = pAdd(pMin, p);/* ボールを連結した */
  }

  if(iLine >= iShow)
   iSkip = 0;/* 表示する */

  pMin = pLine(pMin, iCount, iE, iSkip);/* iCount個からiE個を摘出した */
  FreeAll(pMin);/* 残りのボールを破棄した */
 }
 return EXIT_SUCCESS;
}
16名無しさん@夢いっぱい:2006/09/24(日) 20:27:28 ID:1YEhFxnW
/* 【ファイル名】pNew.h */
#include <stdio.h>
#include <stdlib.h>
typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};
/* mtNtoR.hにおいて #define WEIGHT 14.09
dWeight = WEIGHT
このバージョンではdWeightを活用していない */
17名無しさん@夢いっぱい:2006/09/24(日) 20:28:31 ID:1YEhFxnW
/* 【ファイル名】pNew.c */
#include "pNew.h"
sBall *pNew(char *pBall, double dWeight) {
 sBall *p;
 p = (sBall *)malloc(sizeof(sBall));
 if(p == NULL) {
  fprintf(stderr, "pNew(): p == NULL\n");
  exit(EXIT_FAILURE);
 }

 p->pBall = pBall;/* 文字列としてボールの値を記憶した */
 p->dWeight = dWeight;
 p->pNext = NULL;/* pAdd()によってpNextを決定する */
 return p;
}

sBall *pAdd(sBall *pMin, sBall *p) {
 p->pNext = pMin;/* ボールを連結した */
 return p;/* pMin = pAdd()とすることによってpMinを更新する */
}

void FreeAll(sBall *pMin) {
 sBall *p;
/* 現在の最小値のボールから順に破棄する */
 while(pMin != NULL) {
  p = pMin->pNext;
  free(pMin);
  pMin = p;
 }
}
18名無しさん@夢いっぱい:2006/09/24(日) 20:29:40 ID:1YEhFxnW
/* 【ファイル名】pLine.h */
#define EXTRACT 43/* EXTRACT ≦ BALL_COUNT */
#define BALL_COUNT 43
#define DIGITS 3
#include <stdio.h>
#include <stdlib.h>

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};

extern int iPick(int);
extern sBall *pShorten(sBall *p, sBall *, sBall *);
extern int iCompare(const void *, const void *);
19名無しさん@夢いっぱい:2006/09/24(日) 20:30:31 ID:1YEhFxnW
/* 【ファイル名】pLine.c */
#include "pLine.h"
sBall *pLine(sBall *pMin, int iCount, int iE, int iSkip) {
 char c[EXTRACT][DIGITS];
 sBall *p;
 sBall *pOld;
 int i, iN, iPicked;
/* 反復(注2) */
 for (iPicked = 0; iPicked < iE; iPicked++) {
  iN = iPick(iCount);/* ノードの番号を決定した(1 ≦ iN ≦ iCount) */
  p = pMin;/* 現在の最小値のボール */
  pOld = NULL;/* 先頭のボールより前方にはボールが存在しない */
  for(i = 1; i != iN; i++) {
   pOld = p;
   p = p->pNext;
  };
  sprintf(&c[iPicked][0], "%s", p->pBall);/* iN番目のボールの値(文字列)を配列に記憶した */
  pMin = pShorten(pMin, pOld, p);/* iN番目のボールを破棄した */
  iCount--;/* 摘出したためボールの総数が減少した */
 }

 if(iSkip == 0) {/* 表示する */
  qsort(&c[0][0], iE, DIGITS, iCompare);/* 配列をソートした */
  for(i = 0; i < iE; i++) {
   printf(" %s", &c[i][0]);/* 配列の要素を出力した */
  }
  putchar('\n');/* 改行した */
 }
 return pMin;
}
20名無しさん@夢いっぱい:2006/09/24(日) 20:31:29 ID:1YEhFxnW
/* 【ファイル名】iPick.h */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "mt19937ar.h"

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};
21名無しさん@夢いっぱい:2006/09/24(日) 20:32:28 ID:1YEhFxnW
/* 【ファイル名】iPick.c */
#include "iPick.h"
int iPick(int i) {
 int iN;
 double d;

 if(i <= 0) {
  fprintf(stderr, "iPick(): i <= 0\n");
  exit(EXIT_FAILURE);
 }

 d = genrand_real2();/* 区間[0,1)にある値をメルセンヌ・ツイスタにより決定した */
 d = d*(double)i;
 iN = 1 + (int)floor(d);/* 切上げ */
 return iN;/* 1 ≦ iN ≦ i */
}

sBall *pShorten(sBall *pMin, sBall *pOld, sBall *p) {
 if(pOld == NULL) {/* 最小値のボールより前方にはボールが存在しない */
  pMin = p->pNext;/* 直後のボールを最小値のボールにした */
 } else if(p->pNext == NULL) {/* 最大値のボールより後方にはボールが存在しない */
  pOld->pNext = NULL;/* 直前のボールを最大値のボールにした */
 } else {
  pOld->pNext = p->pNext;/* iN番目のボールを迂回した */
 }

 free(p);/* iN番目のボールを破棄した */
 return pMin;
}
22名無しさん@夢いっぱい:2006/09/24(日) 20:33:59 ID:1YEhFxnW
【コンパイル】エディタによって全角の空白文字(シフトJISコード8140h)をタブ文字(\tすなわち09h)または半角の空白文字に変換する必要がある。上記のファイルと一緒にmt19937ar.hおよびmt19937ar.cを用意する。
1.Windows 98のMS-DOSプロンプト、Windows 2000のコマンドプロンプトにおいて
ボーランドのコンパイラbcc32をインストールした場合
bcc32 -emtNtoR mtNtoR.c pNew.c pLine.c iPick.c mt19937ar.c

2.WindowsパソコンにCygwinをインストールした場合
gcc -o mtntor mtNtoR.c pNew.c pLine.c iPick.c mt19937ar.c
23名無しさん@夢いっぱい:2006/09/24(日) 20:35:09 ID:1YEhFxnW
【実行例】ロト6
B:\BCC>mtntor 43 6 1001 1020
03 12 16 23 24 41
15 18 23 28 37 42
14 17 18 34 37 43
14 15 17 40 41 42
03 04 15 18 21 33
06 24 31 32 34 39
01 13 15 18 28 37
08 10 11 24 29 33
14 25 28 32 36 42
03 05 08 26 32 34
11 14 19 26 30 40
10 12 21 24 38 43
01 03 10 19 32 35
10 17 24 29 30 35
02 17 23 32 39 40
05 10 24 25 33 38
02 07 17 25 28 37
05 07 15 28 30 34
01 12 32 33 39 42
03 17 22 25 26 31

B:\BCC>
24名無しさん@夢いっぱい:2006/09/24(日) 20:36:10 ID:1YEhFxnW
【実行例】ミニロト
D:\BCC>mtntor 31 5 1001 1020
05 11 19 23 30
06 15 21 27 30
02 04 24 26 29
03 05 18 22 26
02 08 10 22 25
01 03 12 16 20
05 08 09 13 25
05 09 16 23 26
02 03 10 20 23
02 05 08 10 28
11 14 20 26 27
03 13 14 23 29
01 10 14 24 27
04 10 14 16 22
07 10 26 28 30
02 19 26 28 31
20 23 24 26 27
17 20 21 22 27
02 06 13 15 24
04 09 22 23 27

D:\BCC>
25名無しさん@夢いっぱい:2006/09/24(日) 20:37:38 ID:1YEhFxnW
【実行例】ナンバーズ4のシングルのボックス
ただし、0〜9ではなく01〜10を出力するため、たとえば 02 03 05 10は1249と解釈する。
D:\BCC>mtntor 10 4 1001 1020
02 03 05 10
05 07 08 09
01 04 06 08
04 07 08 09
05 07 08 09
01 07 09 10
01 02 04 05
01 02 03 04
02 05 07 08
02 06 08 10
04 06 07 08
01 02 04 07
04 06 07 10
01 02 06 10
01 02 03 05
04 07 09 10
04 05 07 09
01 02 03 08
01 03 05 10
01 06 08 10

D:\BCC>
26名無しさん@夢いっぱい:2006/09/24(日) 20:48:43 ID:1YEhFxnW
/* >>15 (注1)
1.iCount個のボールをノードとする線形リストを形成する
2.iE個のボールを摘出する
3.工程1および工程2を反復する */

/* >>19 (注2)
1.何番目のボールを摘出するか、ノードの番号iNを決定する
2.iN番目のボールの値(文字列)を配列に記憶する
3.iN番目のボールを破棄して線形リストを短縮する
4.工程1、工程2、工程3を反復する
5.配列をソートする
6.配列の要素からなる1行を出力する */
27名無しさん@夢いっぱい:2006/09/25(月) 00:34:22 ID:z8jHaYTJ

★ロト6 H18/09/21 第309回 01 04 26 36 41 42 (09)
1等小計 800000000 円 = 2 口 × 400000000 円
2等小計 530189000 円 = 22 口 × 24099500 円
3等小計 636204600 円 = 578 口 × 1100700 円
4等小計 561046800 円 = 32619 口 × 17200 円
5等小計 635711000 円 = 635711 口 × 1000 円
全合計 3163151400 円 キャリー 183009018 円
還元額 3346160418 円 還元率 51.0003844 %
販売額 6561049400 円 収益額 3214888982 円

◆ミニロト H18/09/05 第371回 10 12 19 23 31 (27)
1等小計 293107500 円 = 21 口 × 13957500 円
2等小計 21054600 円 = 126 口 × 167100 円
3等小計 36337500 円 = 2907 口 × 12500 円
4等小計 93791500 円 = 85265 口 × 1100 円
全合計 444291100 円 キャリー     0 円
還元額 444291100 円 還元率 44.8144425 %
販売額 991401600 円 収益額 547110500 円

■ナンバーズ4 H18/09/01 第1902回 6275
ストレート 34527500 円 = 25 口 × 1381100 円
ボックス  20182500 円 = 351 口 × 57500 円
Sストレ-ト 48193100 円 = 67 口 × 719300 円
Sボックス 54443900 円 = 1897 口 × 28700 円
全合計 157347000 円 キャリー     0 円
還元額 157347000 円 還元率 44.9538710 %
販売額 350018800 円 収益額 192671800 円

●ナンバーズ3 H18/09/01 第1902回 899
ストレート 9171900 円 = 79 口 × 116100 円
ボックス  9326700 円 = 241 口 × 38700 円
Sストレ-ト 13235400 円 = 171 口 × 77400 円
Sボックス 6407600 円 = 332 口 × 19300 円
ミニ    9372800 円 = 808 口 × 11600 円
全合計 47514400 円 キャリー     0 円
還元額 47514400 円 還元率 44.9579983 %
販売額 105686200 円 収益額 58171800 円
28名無しさん@夢いっぱい:2006/09/25(月) 00:47:39 ID:z8jHaYTJ
金融グループで初めての再開・13年ぶり法人税納付へ…大手銀行
http://news18.2ch.net/test/read.cgi/bizplus/1158679980/1-
29名無しさん@夢いっぱい:2006/09/25(月) 00:52:56 ID:z8jHaYTJ
C言語でロト6予想プログラム作成 (javascriptも?)
http://money4.2ch.net/test/read.cgi/loto/1158513204/l50
30名無しさん@夢いっぱい:2006/09/25(月) 01:04:31 ID:z8jHaYTJ
31名無しさん@夢いっぱい:2006/09/27(水) 05:49:58 ID:Nae49S6a
//入力ルーチン
InputData=$.split(" ");

//出力ルーチン
function TableStart(){$+="<table cellspacing=0 cellpadding=3 bgcolor=ffffff bordercolor=black border=1><tbody align=right >";}
function TableText($X,$Y){$+="<tr><td width=50><font size=4><b>"+$X+"</td><td width=250 ><font size=4><b>"+$Y+"</td></tr>";}
function TableEnd(){$+="</table>";} $="";

//表作成ルーチン
TableStart();for ( X=0 ; 1000>=X ; X++ ) { TableText ( X , InputData[ X ].substr( 0 , 20 ) ) ; } TableEnd();
32名無しさん@夢いっぱい:2006/09/27(水) 21:40:56 ID:xtBFJyTf
k
33名無しさん@夢いっぱい:2006/09/28(木) 21:59:51 ID:551ukRGB
310回結果 03 04 05 18 28 37 (26)

【実行例】ロト6
D:\bcc>mtntor 43 6 125530 125530
03 04 05 18 22 37

D:\bcc>

5個一致('A`)
34名無しさん@夢いっぱい:2006/10/06(金) 00:39:38 ID:l9DhKfPh
311回 01 16 22 36 37 42 (34)
D:\bcc>mtntor 43 6 29954 29954
01 04 16 36 37 42

D:\bcc>
35名無しさん@夢いっぱい:2006/10/06(金) 00:48:22 ID:jD0Bghnk
えっ?2等?
36名無しさん@夢いっぱい:2006/10/06(金) 19:04:25 ID:hjMcbuZj
>>35
3等だよ…でも結果後の晒しじゃ…。
37名無しさん@夢いっぱい:2006/10/13(金) 00:45:52 ID:vmFe0pu4
312回結果 02 17 22 29 38 42 (16)

$ mtntor 43 6 14066 14066
17 22 28 29 38 42

('A`)
38名無しさん@夢いっぱい:2006/10/13(金) 01:53:19 ID:E+fDH+dI
結果前にださないの?
39名無しさん@夢いっぱい:2006/10/13(金) 02:11:12 ID:mUmDoIyo
20万行(四千万円)までで1等も2等もでていない。3等なら7とおりでた。
第312回 5個一致で3等
17 22 28 29 38 42
01 02 22 29 38 42
02 05 17 29 38 42
01 02 17 22 29 42
02 17 22 38 41 42
02 22 29 38 39 42
02 17 22 29 30 42
40名無しさん@夢いっぱい:2006/10/13(金) 18:40:55 ID:/2DZh7EY
>>38
結果前だと
ピンポイントで14066桁目や29954桁目が3等と一致する
なんて解らないだろ。所詮は結果論。
41名無しさん@夢いっぱい:2006/10/13(金) 19:17:36 ID:E+fDH+dI
>>40
確かにわからない…。
だいたいが使い方さえ理解できてないし。
でこれってもう完成したの?
42名無しさん@夢いっぱい:2006/10/13(金) 19:24:20 ID:JPUT5hMD
>>41
ソースが公開されているのに文句いうな
43名無しさん@夢いっぱい:2006/10/17(火) 22:29:56 ID:a0TcuvCU
何故に今更、構造化言語? オブジェクト指向でいこうよ
44石豆 ◆urzs4gq/xc :2006/10/17(火) 22:35:01 ID:8QUqaNke
ではスレを建てるといい。
45名無しさん@夢いっぱい:2006/10/17(火) 22:52:40 ID:a0TcuvCU
やだ、94.28%の確立で五等が当たるプログラムが完成していますので晒さないと
スレ立てた意味が無くなるから。
46名無しさん@夢いっぱい:2006/10/18(水) 00:28:31 ID:JkIHbhGs
47名無しさん@夢いっぱい:2006/10/18(水) 08:13:59 ID:8L+Qx3ld
確率を確立と書く確率94.28%!
48鬱万長者 ◆M.UTUMAN.A :2006/10/28(土) 18:27:44 ID:LrSgGQJV
♪強そうに 生きてゆ〜くよりも〜
49名無しさん@夢いっぱい:2006/10/30(月) 00:36:07 ID:QSE085ma
loto6 100口、ダブりあり、gawk

BEGIN{
srand()

for(j=0;j<100;j++){
for(i=0;i<43;i++)
a[i]=0

for(i=0;i<6;i++){
do {
x = int(rand()*43)
} while( a[x] == 1 )
a[x]=1
}

for(i=0;i<43;i++)
if( a[i]==1 )
printf "%02d ", i+1
print ""
}
}

予想なんて不可能なんだから、適当に乱数でいいよ
50名無しさん@夢いっぱい:2006/10/30(月) 14:21:54 ID:4lcElYS1
main() {
if( money > 50000 ) {
}
51名無しさん@夢いっぱい:2006/11/01(水) 10:47:42 ID:gbRaXuAo
適当な乱数ならQPと同じじゃないか?
52名無しさん@夢いっぱい:2006/11/03(金) 10:49:20 ID:xEnCYmOo
>>51
クイックピックが乱数であるとは、どこにもかかれていない
53名無しさん@夢いっぱい:2006/11/03(金) 10:55:02 ID:xEnCYmOo
315回 01 02 17 24 40 41 (31)

I:\bcc>mtntor 43 6 2508 2508
01 02 17 24 41 43

I:\bcc>

二十万口(四千万円)で3等が6口でた
01 02 17 24 41 43
01 02 06 17 24 40
01 02 06 24 40 41
01 17 24 33 40 41
01 02 20 24 40 41
01 02 03 17 40 41
54名無しさん@夢いっぱい:2006/11/12(日) 22:27:31 ID:ttRZdojW
#include <stdio.h> /* >>49 メルセンヌ・ツイスタ版 */
#include <stdlib.h> /* 【ファイル名】loto6.c */
#include <time.h> /* 【コンパイル】bcc32 loto6.c mt19937ar.c */
#include <math.h> /* gcc -o loto6 loto6.c mt19937ar.c */
#include "mt19937ar.h"
int main(void) {
 int a[43];
 int j, i, x;
/* メルセンヌ・ツイスタの設定 */
 unsigned long init[4] = {0x123, 0x234, 0x345, 0x456}, length = 4;
 init[0] = (unsigned long)time(NULL);
 init_by_array(init, length);/* メルセンヌ・ツイスタの初期化 */
 for(j = 0; j < 100; j++){
  for(i = 0; i < 43; i++)
   a[i] = 0;/* 印が無い */
/* 6個の印をつける */
  for(i = 0; i < 6; i++){
   do { /* 区間[0,43)にある値をメルセンヌ・ツイスタにより決定する */
    x = (int)floor(genrand_real2()*43.);/* xは整数(0 ≦ x ≦ 42) */
   } while( a[x] == 1 );/* すでに印があるため、やりなおす */
   a[x] = 1;/* 印が無ければ印をつける */
  }
  for(i = 0; i < 43; i++) /* 出力は昇順になる */
   if( a[i] == 1 ) /* a[0]は01、a[1]は02、a[42]は43に対応している */
    printf("%02d ", i + 1);

  printf("\n");/* 改行した */
 }
 return EXIT_SUCCESS;
}
55名無しさん@夢いっぱい:2006/11/12(日) 22:34:18 ID:ttRZdojW
【実行例】出力をリダイレクトするには
D:\bcc>loto6 > loto6.txt

D:\bcc>

loto6.txtのファイルをエディタでみる
56名無しさん@夢いっぱい:2006/11/12(日) 22:39:49 ID:ttRZdojW
>>49さん、おもしろいアルゴリズムをおしえてくださってありがとうございます
57名無しさん@夢いっぱい:2006/11/13(月) 10:22:35 ID:fma5AE7U
夢ロトくんは攪拌してからボールの列を形成して6個摘出するが、
以下のプログラム(mtNtoR Version 1.2)では攪拌しないで
列からメルセンヌ・ツイスタにより6個摘出する。

設定ファイルにしたがってボールに重みを付与できる。
重みを均等にすれば旧バージョン>>14-21と同一の出力になる。

main()
1.設定ファイルからパラメータを取得する(pFile,iCount,iE,iShow,iRepeat,cBall[][],dWeight[])
2.必要に応じてログファイルを追加モードでオープンする(pFile)
3.iCount個のボールをノードとするリストを形成する(数字はcBall[][]、重みはdWeight[])
4.iE個のボールを摘出して、表示開始行以降ならば表示する(iShow)
5.残りのボールを破棄する。
6.工程3、工程4、工程5を反復する(iRepeat)

pLine()
1.iE個のボールを摘出して、配列にボールの数字を記憶する。
2.表示開始行以降ならば配列をソートする。
3.ソートされた配列要素からなる出力文字列を生成する。
4.1行表示する。
5.必要に応じてログファイルに追加する。

pPick()
1.ボールの重みの総和dを計算する。
2.区間[0,d)にある値をメルセンヌ・ツイスタにより決定する(dPick < d)
3.再びボールの重みを加算していきdPickを超えたときボールを決定する(p)
4.pのボールの数字を配列に記憶する。
5.pのボールを破棄してリストを短縮する。

ボールが重いほど出現しやすい。
58名無しさん@夢いっぱい:2006/11/13(月) 10:23:41 ID:fma5AE7U
#【ファイル名】mtNtoR.ini
0x123, 0x234, 0x345, 0x456, 4 # メルセンヌ・ツイスタの設定
Xto6 # 摘出するボールの個数は6
Log mtNtoR.txt # ログファイルを指定できるが必須ではない

  From 1001 # 表示を開始する行番号
Repeat 1020 # 反復する回数

01 14.09
02 14.09
03 14.09
04 14.09
05 14.09
06 14.09
07 14.09
08 14.09
09 14.09
10 14.09
11 14.09
12 14.09
13 14.09
14 14.09
15 14.09
16 14.09
17 14.09
18 14.09
19 14.09
20 14.09
21 14.09
22 14.09
23 14.09
24 14.09
25 14.09
26 14.09
27 14.09
28 14.09
29 14.09
30 14.09
31 14.09
32 14.09
33 14.09
34 14.09
35 14.09
36 14.09
37 14.09
38 14.09
39 14.09
40 14.09
41 14.09
42 14.09
43 14.09
59名無しさん@夢いっぱい:2006/11/13(月) 10:24:44 ID:fma5AE7U
/* 【ファイル名】mtNtoR.h
2006-11-13 Version 1.2
【コンパイル】bcc32 -emtNtoR mtNtoR.c pPick.c pLine.c pSetting.c pNew.c pShorten.c mt19937ar.c
gcc -o mtntor mtNtoR.c pPick.c pLine.c pSetting.c pNew.c pShorten.c mt19937ar.c
*/
#define EXTRACT 43/* EXTRACT ≦ BALL_COUNT */
#define BALL_COUNT 43
#define DIGITS 3
#define SKIP 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};

int iCompare(const void *p, const void *p2) {
 return strcmp((char *)p, (char *)p2);
}
extern FILE *pSetting(int, char *, int *, int *, int *, int *, char *, double *);
extern sBall *pNew(char *, double);
extern sBall *pAdd(sBall *, sBall *);
extern sBall *pLine(sBall *, int, int, int, FILE *);
extern void FreeAll(sBall *);
60名無しさん@夢いっぱい:2006/11/13(月) 10:25:36 ID:fma5AE7U
/* 【ファイル名】mtNtoR.c */
#include "mtNtoR.h"
int main(int argc, char *argv[]) {
 double dWeight[BALL_COUNT];
 char cBall[BALL_COUNT][DIGITS];
 FILE *pFile;
 sBall *pMin;
 sBall *p;
 int i, iCount, iE, iShow, iRepeat, iSkip, iLine;
/* 設定 */
 pFile = pSetting(argc, argv[1], &iCount, &iE, &iShow, &iRepeat, &cBall[0][0], &dWeight[0]);
/* 反復(リストを形成、ボールを摘出、ボールを破棄) */
 iSkip = SKIP;/* 表示しない */
 for(iLine = 1; iLine <= iRepeat; iLine++) {
  pMin = NULL;/* ボールが無い状態 */
  for(i = iCount - 1; i >= 0; i--) {/* 末尾のボールから順に生成、連結する */
   p = pNew(&cBall[i][0], dWeight[i]);/* ボールを生成した */
   pMin = pAdd(pMin, p);/* ボールを連結した */
  }
  if(iLine >= iShow)
   iSkip = 0;/* 表示する */

  pMin = pLine(pMin, iCount, iE, iSkip, pFile);/* iCount個からiE個を摘出した */
  FreeAll(pMin);/* 残りのボールを破棄した */
 }
 if(pFile != NULL)
  fclose(pFile);

 return EXIT_SUCCESS;
}
61名無しさん@夢いっぱい:2006/11/13(月) 10:26:34 ID:fma5AE7U
/* 【ファイル名】pPick.h */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "mt19937ar.h"

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};

extern sBall *pShorten(sBall *, sBall *, sBall *);
62名無しさん@夢いっぱい:2006/11/13(月) 10:28:08 ID:fma5AE7U
#include "pPick.h" /* 【ファイル名】pPick.c */
sBall *pPick(sBall *pMin, int iCount, char *pPicked) {
 double d, dPick;
 sBall *p;
 sBall *pOld;
 if(iCount <= 0) {
  fprintf(stderr, "pPick(): iCount <= 0\n");
  exit(EXIT_FAILURE);
 }
 d = 0.;
 p = pMin;/* 現在の先頭のボール */
 do {/* dWeightを加算していき、dWeightの総和を計算する */
  d = d + p->dWeight;
  p = p->pNext;
 } while(p != NULL);
 dPick = d * genrand_real2();/* 区間[0,d)にある値をメルセンヌ・ツイスタにより決定した */
 d = 0.;
 p = pMin;/* 現在の先頭のボール */
 pOld = NULL;/* 先頭のボールより前方にはボールが存在しない */
 for(;;) {/* 再度、dWeightを加算していく */
  d = d + p->dWeight;
  if(d > dPick)
   break;/* メルセンヌ・ツイスタによる値を超えたためボールを決定した(pを摘出) */

  pOld = p;
  p = p->pNext;
 }
 strcpy(pPicked, p->pBall);/* pのボールの値(文字列)を配列に記憶した */
 return pShorten(pMin, pOld, p);/* pのボールを破棄した */
}
63名無しさん@夢いっぱい:2006/11/13(月) 10:29:38 ID:fma5AE7U
/* 【ファイル名】pLine.h */
#define OUTPUT 130
#define EXTRACT 43/* EXTRACT ≦ BALL_COUNT */
#define BALL_COUNT 43
#define DIGITS 3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};

extern sBall *pPick(sBall *, int, char *);
extern int iCompare(const void *, const void *);
64名無しさん@夢いっぱい:2006/11/13(月) 10:30:43 ID:fma5AE7U
/* 【ファイル名】pLine.c */
#include "pLine.h"
sBall *pLine(sBall *pMin, int iCount, int iE, int iSkip, FILE *pFile) {
 char *pC;
 char cOut[OUTPUT];
 char c[EXTRACT][DIGITS];
 int i;
/* 反復(注2) */
 for (i = 0; i < iE; i++) {
  pMin = pPick(pMin, iCount, &c[i][0]);
  iCount--;/* 摘出したためボールの総数が減少した */
 }

 if(iSkip == 0) {
/* 表示する */
  qsort(&c[0][0], iE, DIGITS, iCompare);/* 配列をソートした */
  cOut[0]='\0';/* 出力文字列の長さを零にした */
  pC=&cOut[0];
  for(i = 0; i < iE; i++) {
   strcat(pC, " ");
   strcat(pC, &c[i][0]);/* 出力文字列に配列要素の文字列を追加した */
  }

  strcat(pC, "\n");/* 出力文字列に改行文字を追加した */
  fputs(pC, stdout);/* 1行表示した */
  if(pFile != NULL)
   fputs(pC, pFile);/* ログファイルに1行追加した */
 }
 return pMin;
}
65名無しさん@夢いっぱい:2006/11/13(月) 10:31:54 ID:fma5AE7U
/* 【ファイル名】pSetting.h */
#define USAGE "mtNtoR mtNtoR.ini\n"
#define LOG "Log"
#define REPEAT "Repeat"
#define FROM "From"
#define XTO "Xto" /* Xto6 */
#define SETTING 80
#define FILE_NAME 80
#define LINES 70
#define BALL_COUNT 43
#define DIGITS 3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "mt19937ar.h"
66名無しさん@夢いっぱい:2006/11/13(月) 10:36:12 ID:fma5AE7U
#include "pSetting.h" /* 【ファイル名】pSetting.c */
FILE *pSetting(int iArg, char *pArg, int *pCount, int *pE, int *pShow, int *pRepeat, char *pBall, double *pWeight) {
 char cFile[FILE_NAME], c[SETTING];
 char *pC;
 char *pStop;
 FILE *pFile;
 int i, iLine, iS;
 unsigned long length, init[4];
 switch(iArg) {
 case 2:
  pFile = fopen(pArg, "rt");/* 設定ファイルをオープンした */
  if(pFile == NULL) {
   fprintf(stderr, "pSetting(): pFile == NULL (%s)\n", pArg);
   exit(EXIT_FAILURE);
  }
  break;
 default:
  fprintf(stderr, USAGE);
  exit(EXIT_FAILURE);
 }
 cFile[0]='\0';
 *pE = 0;
 *pShow = 1;
 *pRepeat = 0;
 i = 0;
 for(iLine = 0; iLine < LINES; iLine++) {
  pC = fgets(c, SETTING, pFile);
  if(pC == NULL)
   break;

  pC = strchr(c, '\n');
  if(pC == NULL) {
   fprintf(stderr, "pSetting(): pC == NULL\n");/* 改行文字が無かった */
   exit(EXIT_FAILURE);
  }
  *pC = '\0';/* 改行文字を削除した */
  pC = strchr(c, '#');
  if(pC != NULL)
   *pC = '\0';/* コメントを削除した */
/* メルセンヌ・ツイスタの設定 */
  pC = strstr(c, "0x");
  if(pC != NULL) {
   iS = sscanf(c, "%lx, %lx, %lx, %lx, %ld", &init[0], &init[1], &init[2], &init[3], &length);
   if(iS != 5) {
    fprintf(stderr, "pSetting(): iS != 5\n");
    exit(EXIT_FAILURE);
   }
   init_by_array(init, length);/* メルセンヌ・ツイスタの初期化 */
   continue;
  }
  pC = strstr(c, XTO);/* つづく */
67名無しさん@夢いっぱい:2006/11/13(月) 10:37:29 ID:fma5AE7U
  if(pC != NULL) {/* >>66のつづき */
   pC = pC + strlen(XTO);
   *pE = (int)strtol(pC, &pStop, 0);/* 摘出する個数 */
   continue;
  }
  pC = strstr(c, LOG);
  if(pC != NULL) {
   pC = pC + strlen(LOG);
   sscanf(pC, " %s", &cFile[0]);
   continue;
  }
  pC = strstr(c, FROM);
  if(pC != NULL) {
   pC = pC + strlen(FROM);
   *pShow = (int)strtol(pC, &pStop, 0);/* 表示を開始する行 */
   continue;
  }
  pC = strstr(c, REPEAT);
  if(pC != NULL) {
   pC = pC + strlen(REPEAT);
   *pRepeat = (int)strtol(pC, &pStop, 0);/* 反復する回数 */
   continue;
  }
  if(i >= BALL_COUNT)
   continue;
/* ボールの数字(文字列)を配列に記憶する */
  pC = &c[0];
  iS = sscanf(pC, "%s %lf", pBall, pWeight);
  if(iS == 2) {
   i++;
   pWeight++;
   pBall = pBall + DIGITS;
   continue;
  } else if(iS == EOF) {
   continue;
  } else {
   fprintf(stderr, "pSetting(): iS != 2(%s)\n", pC);
   exit(EXIT_FAILURE);
  }
 }
 *pCount = i;
 fclose(pFile);/* 設定ファイルをクローズした */
 if(cFile[0]=='\0') {
  pFile = NULL;/* ログファイルをオープンしない */
 } else {
  pFile = fopen(cFile, "at");/* ログファイルをオープンした */
  if(pFile == NULL) {
   fprintf(stderr, "pSetting(): pFile == NULL(%s)\n", &cFile[0]);
   exit(EXIT_FAILURE);
  }
 }
 if(*pRepeat == 0) {
  fprintf(stderr, "pSetting(): *pRepeat == 0\n");
  exit(EXIT_FAILURE);
 }
 return pFile;
}
68名無しさん@夢いっぱい:2006/11/13(月) 10:39:04 ID:fma5AE7U
/* 【ファイル名】pNew.h */
#include <stdio.h>
#include <stdlib.h>

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};
69名無しさん@夢いっぱい:2006/11/13(月) 10:40:10 ID:fma5AE7U
#include "pNew.h" /* 【ファイル名】pNew.c */
sBall *pNew(char *pBall, double dWeight) {
 sBall *p;

 p = (sBall *)malloc(sizeof(sBall));
 if(p == NULL) {
  fprintf(stderr, "pNew(): p == NULL\n");
  exit(EXIT_FAILURE);
 }

 p->pBall = pBall;/* ボールの数字を示す文字列のアドレスを記憶した */
 p->dWeight = dWeight;
 p->pNext = NULL;/* pAdd()によってpNextを決定する */
 return p;
}

sBall *pAdd(sBall *pMin, sBall *p) {
 p->pNext = pMin;/* ボールを連結した */
 return p;/* pMin = pAdd()とすることによってpMinを更新する */
}

void FreeAll(sBall *pMin) {
 sBall *p;
/* 現在の先頭のボールから順に破棄する */
 while(pMin != NULL) {
  p = pMin->pNext;
  free(pMin);
  pMin = p;
 }
}
70名無しさん@夢いっぱい:2006/11/13(月) 10:41:04 ID:fma5AE7U
/* 【ファイル名】pShorten.h */
#include <stdlib.h>

typedef struct sBall sBall;
struct sBall {
 char *pBall;
 double dWeight;
 sBall *pNext;
};
71名無しさん@夢いっぱい:2006/11/13(月) 10:42:06 ID:fma5AE7U
/* 【ファイル名】pShorten.c */
#include "pShorten.h"
sBall *pShorten(sBall *pMin, sBall *pOld, sBall *p) {
 if(pOld == NULL) {/* 先頭のボールより前方にはボールが存在しない */
  pMin = p->pNext;/* 直後のボールを先頭のボールにした */
 } else if(p->pNext == NULL) {/* 末尾のボールより後方にはボールが存在しない */
  pOld->pNext = NULL;/* 直前のボールを末尾のボールにした */
 } else {
  pOld->pNext = p->pNext;/* 摘出したボールを迂回した */
 }

 free(p);/* 摘出したボールを破棄した */
 return pMin;
}
72名無しさん@夢いっぱい:2006/11/13(月) 10:45:35 ID:fma5AE7U
>>58の設定ファイルでは
重みを均等にしているため旧バージョン>>14-21と同一の出力になる。
73名無しさん@夢いっぱい:2006/11/13(月) 10:47:19 ID:fma5AE7U
#【ファイル名】parabola.txt
# y = -20/225 (x - 5)(x - 35)
0x123, 0x234, 0x345, 0x456, 4
Xto6
Log mtNtoR.txt

From 1
Repeat 200000

05 0.000000
06 2.577778
07 4.977778
08 7.200000
09 9.244444
10 11.111111
11 12.800000
12 14.311111
13 15.644444
14 16.800000
15 17.777778
16 18.577778
17 19.200000
18 19.644444
19 19.911111
20 20.000000
21 19.911111
22 19.644444
23 19.200000
24 18.577778
25 17.777778
26 16.800000
27 15.644444
28 14.311111
29 12.800000
30 11.111111
31 9.244444
32 7.200000
33 4.977778
34 2.577778
35 0.000000
74名無しさん@夢いっぱい:2006/11/13(月) 10:53:06 ID:fma5AE7U
>>73の設定ファイルで実験した。大幅に重みが相違しており、削除数字もある。
二十万行の結果として、出現数は以下のとおりであった。

06: 8572     21: 58441     
07: 16174     22: 57340     
08: 23038     23: 55904     
09: 29142     24: 54593     
10: 34759     25: 52570     
11: 39590     26: 50402     
12: 43686     27: 46903     
13: 46965     28: 43373     
14: 50168     29: 39278     
15: 52646     30: 34625     
16: 54500     31: 29301     
17: 56045     32: 23012     
18: 57638     33: 16206     
19: 57880     34: 8521     
20: 58728     
75名無しさん@夢いっぱい:2006/11/13(月) 11:27:59 ID:fma5AE7U
>>73の設定ファイルの結果をグラフにした http://p.pita.st/?m9gwkzxc
76名無しさん@夢いっぱい:2006/11/13(月) 11:38:57 ID:fma5AE7U
【実行例】設定ファイルを指定する
D:\bcc>mtntor parabola.txt > pa200000.txt

D:\bcc>

pa200000.txtは二十万行ある。ログファイル(mtNtoR.txt)は二十万行以上ある。
7764:2006/11/13(月) 11:59:54 ID:fma5AE7U
>>64 「反復(注2)」については、>>57のpLine()およびpPick()を参照してください
78名無しさん@夢いっぱい:2006/11/16(木) 23:58:46 ID:UAmGVRRn
>>58の設定ファイルで
  From 67356 # 表示を開始する行番号
Repeat 67356 # 反復する回数
に変更すれば
D:\bcc>mtntor mtntor.ini
07 15 30 35 36 40

D:\bcc>

2等だ!
79名無しさん@夢いっぱい:2006/12/07(木) 23:44:48 ID:UCU7ZMql
>>58の設定ファイル(mtNtoR.ini)において
  From 40 # 表示を開始する行番号
Repeat 40 # 反復する回数
に変更すれば
D:\bcc>mtntor mtntor.ini
01 05 25 27 39 41

D:\bcc>

3等
8075:2006/12/09(土) 00:48:31 ID:VPGk+gDZ
>>73の設定ファイルの結果をグラフにした(再度うpします)
http://www.shinetworks.net/cgi-bin/img-up/src/1165592719795.jpg
81名無しさん@夢いっぱい:2007/03/01(木) 22:40:35 ID:ExXQ8fSd
332回 07 08 16 24 26 34 (19)

>>58 の設定ファイルを変更して
  From 39426 # 表示を開始する行番号
Repeat 39426 # 反復する回数
にすると

D:\bcc>mtntor mtntor.ini
07 08 19 24 26 34

2等だ!
82名無しさん@夢いっぱい:2007/03/27(火) 01:07:52 ID:aHIMHuE+
 
83名無しさん@夢いっぱい:2007/04/01(日) 12:51:52 ID:9RST2uO+
誰か、>>58 の設定ファイルを変更して

337回 の番号出してけれ!!
84名無しさん@夢いっぱい :2007/04/01(日) 13:18:03 ID:37V0gAtl
>>83
当たるクンでも買ってろ(ワラ

85名無しさん@夢いっぱい:2007/04/02(月) 13:09:27 ID:Kpir5bbx
実際当たったヤツおる[
86名無しさん@夢いっぱい:2007/04/02(月) 13:40:18 ID:0nXigcqQ
どうせ当たらないソフトだろ?自信がないから晒せないんだろw
87名無しさん@夢いっぱい:2007/04/02(月) 15:34:32 ID:U2aB8u1m
完璧にはずれるソフトがあれば、
それはそれで十分すぎるほど
使えるんだがなぁ…。
88名無しさん@夢いっぱい:2007/04/03(火) 17:19:28 ID:8iWcfoHe
私には難しすぎるぉ。もっと簡単にわかりやすくしてよ〜
89名無しさん@夢いっぱい:2007/04/04(水) 19:15:10 ID:OT5+CmM+
C++で分析用に作って徐々に分析方法を増やしているんだけど
よく考えたら大した処理が無いからVBでよかったような気がする・・・/(^o^)\
90名無しさん@夢いっぱい:2007/04/09(月) 08:58:12 ID:J4G0JoxL
ロト6の予想数字誰か晒して下さいよ〜
91名無しさん@夢いっぱい:2007/04/09(月) 09:45:29 ID:/1m3V1+p
01,02,03,04,05,06,07,08,09,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30
31,32,33,34,35,36,37,38,39,40
41,42,43
92名無しさん@夢いっぱい:2007/04/19(木) 17:40:42 ID:nw7MGTli
Excelの乱数でいいよ
93名無しさん@夢いっぱい:2007/04/19(木) 17:48:43 ID:3xdvyMCD
りんごの皮を剥くのに日本刀を振るうみたいな話。
94名無しさん@夢いっぱい:2007/05/04(金) 10:51:43 ID:u/p9mQrf
341回 04 14 23 25 28 35 (41)

>>58 の設定ファイルを変更して
From 108359 # 表示を開始する行番号
Repeat 108359 # 反復する回数
にすると

D:\bcc>mtntor mtntor.ini
04 14 23 28 35 41

2等だ!
>>78(11月16日) >>81(3月1日) 以来、三回目
95名無しさん@夢いっぱい:2007/06/02(土) 12:31:09 ID:XDImr8C2
驚異の回収率!137%達成!
週刊SPAで好評だったナンバーズ攻略法がナンバーズ予想自動生成ソフトにバージョンアップして登場!
ワンクリックで90000稼いだ脅威のソフト!
http://tinyurl.com/3bv9gs
96名無しさん@夢いっぱい:2007/06/02(土) 16:18:16 ID:6vFyLfMC
ロト6なんか当たるわけないだろバカ

いつまで夢見てんだカス
97名無しさん@夢いっぱい:2007/06/08(金) 03:23:10 ID:ix5CEkyv
2007年6月7日 第346回結果 04 09 11 12 32 38 (16)

>>58の設定ファイルで
From 21588 # 表示を開始する行番号
Repeat 21588 # 反復する回数
に変更すると

D:\bcc>mtntor mtntor.ini
04 09 11 16 32 38

D:\bcc>

2等だ! 四回目
98名無しさん@夢いっぱい:2007/08/12(日) 10:47:14 ID:Nfr0M43x
#include <GrWin.h>
#include <stdlib.h>
#include <time.h>

#define MAX 100
int xrand(int, int); /* 特定範囲の乱数発生関数 */

int main(void)
{
int width = 640, height = 400;
int n;
float x1, x2, y1, y2;

GWopen(0);
GWsize(-5, &width, &height);
GWsize(-3, NULL, NULL);
GWvport(0.0, 0.0, (float)width / (float)height, 1.0);
GWindow(0.0, 0.0, (float)width - 1.0, (float)height - 1.0);
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
GWclear(-1);
srand(time(NULL));
for(n = 0; n < MAX; ++n){
x1 = (float)xrand(0, width - 1);
x2 = (float)xrand(0, width - 1);
y1 = (float)xrand(0, height - 1);
y2 = (float)xrand(0, height - 1);
GWline(x1, y1, x2, y2);
}
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
GWquit();
return 0;
}
int xrand(int lower, int upper)
{
return (upper - lower + 1) * (float)rand() / 32768.0 + lower;
}
99名無しさん@夢いっぱい:2007/09/28(金) 02:21:59 ID:Z8JfECUn
第362回結果 07 10 15 20 37 40 (28)

>>58の設定ファイルで
From 66973 # 表示を開始する行番号
Repeat 66973 # 反復する回数
に変更すると

D:\bcc>mtntor mtntor.ini
07 10 15 20 28 40

D:\bcc>

2等だ! 
100名無しさん@夢いっぱい:2007/09/28(金) 04:54:37 ID:eJRHDz8A
確率微分方程式でなんとかならないか?
101名無しさん@夢いっぱい:2007/11/29(木) 21:43:07 ID:TltGm6KZ
371回 14 15 23 24 32 34 (31)

>>58の設定ファイル(mtntor.ini)のFromおよびRepeatの行
を以下のとおりに変更すると…
  From 51120 # 表示を開始する行番号
Repeat 51120 # 反復する回数

D:\bcc>mtntor mtntor.ini
14 23 24 31 32 34

D:\bcc>

2等だ!
102名無しさん@夢いっぱい:2008/01/29(火) 17:32:46 ID:1h0awsWV
w
103名無しさん@夢いっぱい:2008/02/07(木) 21:25:16 ID:EWhFlmgP
380回結果 17 22 25 26 27 43 (16)

>>58
  From 165770
Repeat 165770
に変更したら

D:\bcc>mtntor mtntor.ini
16 17 22 25 27 43

2等だ!
104名無しさん@夢いっぱい:2008/02/07(木) 21:32:45 ID:EWhFlmgP
380回結果によると
>>73のparabola.txt(重みを付与した設定)は
From 51620
Repeat 51620
に変更すれば
D:\bcc>mtntor parabola.txt
16 17 22 25 26 27
(二等)
105名無しさん@夢いっぱい:2008/02/10(日) 14:19:38 ID:QwaAEYf8
ミッドナイトシャッフル
106名無しさん@夢いっぱい:2008/02/14(木) 02:30:16 ID:l/Eta39T
しゃーねーな。俺がとっておきのプログラム公開したる。


#include <stdio.h>

int main()
{
printf(" Hello World!\n");
printf(" 01 02 03 04 05 06\n");
}


cってこんなんだったっけ?
107I:2008/02/27(水) 02:18:47 ID:8QLcWdsN
市販ソフトを超えるソフトを創りました。
1000〜610万回の組合せ作成ができます。

Cの場合は1000〜610万回を処理するPRGはどのようになるのですか?
108名無しさん@夢いっぱい:2008/02/29(金) 05:11:20 ID:Hr1uTe6b
http://numbers-3.net/2008/ (ナンバーズ3完全攻略!なるモノ)

ここ、非常に悪質ですよ。130点(総額26,000円)買いが当たり前。
5日連続不当選のときもざらで、1週間で15万くらい吹っ飛びますよ。
私はこのソフトに騙されて20万円以上失いました。
考えてみればわかることですが、2週間で当選って・・かなりの逃げ道ですよ。
つまりは最後は大赤字確定なんです。気をつけましょう
109名無しさん@夢いっぱい:2008/02/29(金) 13:05:11 ID:f832aLPR
信じる方が・・・・・・・(へ._(へ.
110名無しさん@夢いっぱい:2008/03/13(木) 21:41:16 ID:1rM7t+XD
385回結果 06 31 34 35 37 40 (07)

From 76221
Repeat 76221
設定ファイル(>>58)を上記のとおりに変更したら

D:\bcc>mtntor mtntor.ini
06 07 34 35 37 40

2等だ! 
────────────────
From 151249
Repeat 151249
設定ファイル(>>58)を上記のとおりに変更したら

D:\bcc>mtntor mtntor.ini
06 07 31 34 37 40

2等だ! 
111名無しさん@夢いっぱい:2008/03/16(日) 02:56:49 ID:LtUmK4v0
予想する前提条件は何でしょうか?。
前回でた数字を元にしているのか、それとも全然でていない数字を元にしているのか?
でた回数が多い数字を元にしているのか?。おせーて
112名無しさん@夢いっぱい:2008/03/26(水) 18:47:35 ID:ENk49yx0
        ____ 
       /      \    自分は会社経営だから、この日をまちこがれてた。
      /  ─    ─\          いよいよ動く。
    /    (●)  (●) \
    |       (__人__)    | ________
     \      ` ⌒´   ,/ .| |          |
    ノ           \ | |          |
  /´                 | |          |
 |    l                | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  |
113名無しさん@夢いっぱい:2008/03/26(水) 18:47:59 ID:ENk49yx0
         ____  
       /      \    自分は会社経営だから、この日をまちこがれてた。
      /  ─    ─\          いよいよ動く。
    /    (●)  (●) \
    |       (__人__)    | ________
     \      ` ⌒´   ,/ .| |          |
    ノ           \ | |          |
  /´                 | |          |
 |    l                | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  |
114名無しさん@夢いっぱい:2008/03/26(水) 19:15:47 ID:9WSF5cHr
#include <stdio.h>
#include <stdlib.h>
#define P 1000
#define Q 43

void set0(char *a){
  int i;

  i=0;
  while(i<Q){
    *(a+i)=0; i++; }
}

void main(int argc,char *argv[]){
  if(argc==3){
    char buf[40],*mem,*p1;
    int i,j,max,n1,n2,n3,n4,n5,n6;
    long cnt[P];
    FILE *fp;

    mem=malloc(P*Q); p1=mem;
    fp=fopen(argv[1],"r");
    while(fgets(buf,39,fp)!=NULL){
      set0(p1); i=9;
      while(i<27){
        j=10*(buf[i]-48)+buf[i+1]-49; *(p1+j)=1; i+=3; }
      p1+=Q; }
    *p1=-1; fclose(fp);
115名無しさん@夢いっぱい:2008/03/26(水) 19:17:40 ID:9WSF5cHr
    i=0;
    while(i<P){
      cnt[i]=0; i++; }
    n1=0; max=0;
    while(n1<Q-5){
    n2=n1+1;
    while(n2<Q-4){
    n3=n2+1;
    while(n3<Q-3){
    n4=n3+1;
    while(n4<Q-2){
    n5=n4+1;
    while(n5<Q-1){
    n6=n5+1;
    while(n6<Q){
      if(n2+n3+n4+n5+n6-5*n1==15)
        printf("先頭%02dの組合せの検索中...\r",n1+1);
      p1=mem; j=0;
      while(*p1!=-1){
        i=0;
        if(*(p1+n1)) i++; if(*(p1+n2)) i++; if(*(p1+n3)) i++;
        if(*(p1+n6)) i++; if(*(p1+n5)) i++; if(*(p1+n4)) i++;
        if(i>2) j++; p1+=Q; }
      if(max<j) max=j;
      cnt[j]++; n6++; } n5++; } n4++; } n3++; } n2++; } n1++; }
    i=0; fp=fopen(argv[2],"w");
    while(i<=max){
      fprintf(fp,"%4d:%7ld\n",i,cnt[i]); i++; }
    fclose(fp); free(mem); printf("\n");
  }
  else printf("l004.c\n");
}
116名無しさん@夢いっぱい:2008/04/11(金) 09:34:55 ID:YRjw+83b
389回結果 06 12 22 25 31 35 (28)

>>58の設定ファイルで
From 69282
Repeat 69282
に変更したら

D:\bcc>mtntor mtntor.ini
06 22 25 28 31 35

2等だ!
117名無しさん@夢いっぱい:2008/05/01(木) 22:06:39 ID:Ag4GdkwF
2006年秋以来、はじめて1等がでた! ながかったーっ!

>>58の設定ファイルで
From 1
Repeat 200000
に変更したら…

  32104口目 10 18 30 31 32 37 3等
  43422口目 10 18 21 30 31 37 3等
  65770口目 10 15 18 31 37 41 3等
  94639口目 10 15 30 31 37 39 3等
 112881口目 10 15 18 30 31 37 1等!
118名無しさん@夢いっぱい:2008/05/01(木) 22:10:08 ID:Ag4GdkwF
このスレで「2等だ!」を検索したら10回あった。

2等だ!
2等だ!
2等だ!
2等だ! 四回目
2等だ! 
2等だ!
2等だ!
2等だ! 
2等だ! 
2等だ!
119名無しさん@夢いっぱい:2008/05/01(木) 22:17:00 ID:Ag4GdkwF
第392回
抽せん日 2008年5月1日
本数字 10 15 18 30 31 37
ボーナス数字 11

1等 6 口 56,764,100 円
2等 38 口 8,066,400 円
3等 920 口 399,800 円
4等 39,058 口 8,300 円
5等 575,670 口 1,000 円
販売実績額 4,255,729,400 円
120名無しさん@夢いっぱい:2008/05/05(月) 11:23:17 ID:QaSYr8kK
       ∧∧   ♪
     (´・∞・ ∩))   
    (((⌒つ  ノ 
     ,ノ    ⌒i  ♪
    (_ノ⌒(_)゙,, 

  ♪    ∧∧   
    ((∩ ・∞・`)    
      ヽ ⊂⌒)
  ♪   i⌒   ヽ
    ,,゙(_)⌒ヽ,__)
121名無しさん@夢いっぱい:2008/05/09(金) 00:46:24 ID:TJsV74cG
第393回結果 07 18 27 37 38 43 (35)

>>58の設定ファイルで
From 28154
Repeat 28154
に変更したら…

D:\bcc>mtntor mtntor.ini
07 18 27 35 37 43

2等だ!
122名無しさん@夢いっぱい:2008/05/09(金) 11:52:20 ID:biNZe24f
     ∧∧
   (´>∞<`)∩    あいやーいたたた・・・orz
    (つ  丿
    <__ ノ
      レ 
     | | |
123名無しさん@夢いっぱい:2008/05/28(水) 11:14:16 ID:Ktb1hU+n
9]]
124名無しさん@夢いっぱい:2008/05/30(金) 04:42:19 ID:3kWzW+zk
第396回結果 09 12 21 26 33 40 (05)
2等が2本でた! 
2等が2本でたのは、385回(>>110 2008/03/13)以来のことだ。

設定ファイル(>>58
From 22133
Repeat 22133
に変更したら…

D:\bcc>mtntor mtntor.ini
05 09 12 21 26 40

2等だ!
───────────────────────────────
設定ファイル(>>58
From 133988
Repeat 133988
に変更したら…

D:\bcc>mtntor mtntor.ini
05 12 21 26 33 40

2等だ!
125名無しさん@夢いっぱい:2008/07/03(木) 21:38:23 ID:9KSyEVQe
401回結果 14 15 27 34 35 42 (37)

>>58の設定ファイルで
From 6340
Repeat 6340
に変更したら…


D:\bcc>mtntor mtntor.ini
14 15 27 34 37 42

D:\bcc>

2等だ!
126名無しさん@夢いっぱい:2008/08/13(水) 18:31:09 ID:V3Jnb80r
投稿者:夜神月☆ (08/05/29-22:10:52) [i]N905i [削除]
首位を奪還され、無念です然し、4週連続首位は記録でしょうね。(自画自賛)
まぁ僕が真面目に予想するかは皆さんの結果次第です(正直首位なんて序の口)
夜神月☆ ◆1svzDdZcEs :2008/05/26(月) 22:57:23 ID:qZi4vDBF
阿呆共今晩は。所で君達年齢は?
君達は全てで僕に勝てないんだから、勉強し懸命に働きなさい。
ポイント戦に参加し己の実力の無さを知りなさい。阿呆共お休みなさい。
Name:夜神月☆ [返信]
No.12 2008/08/07(Thu) 18:27:08
  06・08・31・33・34・35
結果01 02 04 16 36 37 B40
>阿呆夜神月☆さん
水を注すようで申し訳ないのですが…
累計の連続記録は第]期にMAKOTOさんが全て一位で「殿堂入り」を果たしております。
次点で第Z期にすけさんが9連続累計一位で、最後にフェイクさんに逆転トップを明け渡しておりました。
127-:2008/10/27(月) 16:41:16 ID:KR98uk1T
このスレッドは重複です。以下のスレッドに移動願います。

【ロト】予想ソフトを作ろう ver.3【ナンバーズ】
ttp://namidame.2ch.net/test/read.cgi/loto/1184075899/
128名無しさん@夢いっぱい:2008/10/29(水) 08:50:47 ID:cJUP5OW5
C言語に特定したスレです。
C言語は、高速で小型で可読性にすぐれたプログラミングが可能です。

オブジェクト指向が苦手なひとは、とくにC言語を使用します。
129名無しさん@夢いっぱい:2008/10/29(水) 08:56:58 ID:cJUP5OW5
ホビープログラミング、サンデープログラミングなど、他の言語を学習したくない場合、
C言語に特定したスレには、安心感があります。
130名無しさん@夢いっぱい:2008/11/07(金) 00:02:50 ID:mGbm2PNz
ミラー数字が作れなくて困っています。
例えば、
31→13
のように、一の位と十の位を入れ替える関数を作ってください。
予想プログラムにどうしても必要なんです。お願いします。
131名無しさん@夢いっぱい:2008/11/07(金) 12:28:25 ID:sKRshvDH
>>130
/* 【ファイル名】mirror_t.c
1.テーブルにアクセスするために、2文字を配列の引数にする。
2.テーブルから2文字コピーする(もとの2文字に上書きする)
3.アクセスできない場合、2文字のエラーコードを上書きする。 */

/*     01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 */
#define MIRROR_TABLE "10 20 30 40 05 06 07 08 09 01 11 21 31 41 15 16 17 18 19 02 12 22 32 42 25 26 27 28 29 03 13 23 33 43 35 36 37 38 39 04 14 24 34 "
#define ERROR_CODE "44" /* 2文字 */
#include <stdlib.h>
void mirror_table(char *p) {
 char c[129] = MIRROR_TABLE;/* 43 × 3 = 129 */
 char code[3] = ERROR_CODE;
 int i;
 char *pStopper;
 i = (int)strtol(p, &pStopper, 10);/* 10進数 */
 if(i < 1 || 43 < i) {
  *p++ = code[0];
  *p++ = code[1];
  *p = '\0';
  return;
 }

 i = (i - 1)*3;
 *p++ = c[i++];
 *p++ = c[i];
 *p = '\0';
}
132名無しさん@夢いっぱい:2008/11/07(金) 12:28:50 ID:sKRshvDH
/* 【ファイル名】mir.c
2008-11-07
【コンパイル】bcc32 -emir mir.c mirror_t.c
gcc -o mir mir.c mirror_t.c
【使用法】mir < 入力ファイル名
mir < 入力ファイル名 > ファイル名

【中止するには】Windowsの場合、CTRL + C
*/

#define SIZE 256
#include <stdlib.h>
#include <stdio.h>

void mirror_table(char *p);

int main(void) {
 char *p;
 char c[256];
 for(;;) {
  p = fgets(c, SIZE, stdin);
  if(p == NULL)
   break;

  mirror_table(p);
  puts(p);
 }
 return EXIT_SUCCESS;
}
133名無しさん@夢いっぱい:2008/11/07(金) 12:32:55 ID:sKRshvDH
char c[256]を訂正します。
char c[SIZE]
134名無しさん@夢いっぱい:2008/11/07(金) 12:36:57 ID:sKRshvDH
D:\bcc>mir
43
34
44
44
45
44
^C
D:\bcc>type 1.txt
16
05
30
08
25
26
01

D:\bcc>mir < 1.txt
16
05
03
08
25
26
10
135130:2008/11/08(土) 00:58:42 ID:an68a3KN
早速ありがとうございます。
数字を1つずつ、その都度入れ替えるのではなく、
あらかじめ入れ替えたものを用意しておくと
負荷がかからないという利点があるということでしょうか。
自分では思いつかない発想で参考になりました。
136名無しさん@夢いっぱい:2008/11/08(土) 12:56:37 ID:wXMQTuke
文字列リバースすれば良いだろ
137名無しさん@夢いっぱい:2008/11/11(火) 16:37:24 ID:C2lMiK/f
Cで書かれたソースを見るとホッとする
138名無しさん@夢いっぱい:2008/11/20(木) 01:51:36 ID:cC0k/Z/y
ロト6攻略にコンピュータはいらんぜよ!
要るのは国語辞典じゃ。
実は戦国武将でも解ける簡単な仕組みじゃよ。
139名無しさん@夢いっぱい:2008/11/22(土) 03:29:36 ID:7EfUfinW
ミラー数字結果報告

ミラー数字は、1組の中に最低0組から最大3組までになりますが、
全組み合わせから、2組以上を含む組み合わせを削除すると、
削除口数は、33105口
削除率は、0.54%程度
元々ミラー数字自体の割合が少なく、フィルターとしては
それほど効果があるとは思えないような結果です。
ちなみに、本数字にミラー数字が2組入ったのは過去に2回だけ。
140名無しさん@夢いっぱい:2008/11/22(土) 03:35:58 ID:7EfUfinW
>>C言語は、高速で小型で可読性にすぐれたプログラミングが可能です。

>>114-115などにはあてはまらないと思います。
コメントもなく、使い方も分からず、何をするプログラムなのかも良く分からない。
高速でもなく、小型でもなく、可読性にすぐれているとも思えず、
結局プログラムを書いた人のスキルレベルと初心者に対する配慮によるところが大きい。
141石豆 ◆MYsvBWJ9FA :2008/11/22(土) 04:01:56 ID:EWTsdwJc
その通り。
>>127の申請は却下されたので、もうしばらくこのスレでお楽しみ下さい。
142名無しさん@夢いっぱい:2008/11/22(土) 04:36:32 ID:7EfUfinW
【ロト】予想ソフトを作ろう ver.3【ナンバーズ】
ttp://namidame.2ch.net/test/read.cgi/loto/1184075899/
ここは、更に危険です。
改変速度が異常に速いという類希な能力の持ち主。しかし、
ソース非公開であり、通常ではありえない挙動をするソフトウェア。
遊びだし動けば良いんだけど。

>>141
コメント書いてくれませんか。を言い換えたものです。
素因数分解はおもしろかったです。
143名無しさん@夢いっぱい:2008/11/27(木) 21:18:19 ID:QWgsFOus
422回結果 05 06 07 08 28 38 (36)

>>58の設定ファイルで
#  From 1001 # 表示を開始する行番号
#Repeat 1020 # 反復する回数
From 67770
Repeat 67770
に変更したら

D:\bcc>mtntor mtntor.ini
05 06 07 08 36 38

2等だ! (>>125 7月3日から、4〜5か月ぶり)
144名無しさん@夢いっぱい:2008/12/02(火) 00:47:35 ID:aMPHbxdA
趣旨が似ていても、誘導先が不適当と思われるものもあるので、
依頼の時に考慮して頂けると幸いです。
145名無しさん@夢いっぱい:2008/12/06(土) 20:27:14 ID:0OUQ49E2
146名無しさん@夢いっぱい:2008/12/06(土) 20:38:10 ID:VhcccxW6
削除人が来る頃には誘導先が1000に達して
なくなっちゃうんだよね。
147名無しさん@夢いっぱい:2008/12/10(水) 21:57:09 ID:MBK1Z8uY
>>93
鶏を割くに焉んぞ牛刀を用いん(にわとりをさくにいずくんぞぎゅうとうをもちいん)
148名無しさん@夢いっぱい:2008/12/10(水) 22:04:34 ID:ron5TwB6
コンピューターは電子羊の夢を見るか?
149ϖ:2008/12/24(水) 02:42:55 ID:At93RzyV
コーエーのエロゲーですね。
150名無しさん@夢いっぱい:2008/12/25(木) 22:01:05 ID:ZKWZ3bYi
第426回結果 06 08 09 29 32 37 (04)

>>58の設定ファイルで
#  From 1001 # 表示を開始する行番号
#Repeat 1020 # 反復する回数
From 190451 # 表示を開始する行番号
Repeat 190451 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
04 06 08 09 32 37

2等だ!
151名無しさん@夢いっぱい:2009/01/22(木) 20:23:13 ID:DseZ1tOc
第429回結果 17 25 29 33 37 42 (07)

>>58の設定ファイルで

From 177825 # 表示を開始する行番号
Repeat 177825 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
07 17 29 33 37 42

2等だ!
152名無しさん@夢いっぱい:2009/02/26(木) 21:35:25 ID:7kBG5WPX
第434回結果 03 12 19 33 35 36 (37)

>>58の設定ファイルで


From 9457 # 表示を開始する行番号
Repeat 9457 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
12 19 33 35 36 37

D:\work>

2等だ!
153名無しさん@夢いっぱい:2009/03/06(金) 04:46:19 ID:vdvzg8K0
第435回結果 02 11 12 28 35 37 (27)
>>58の設定ファイルで

From 35507 # 表示を開始する行番号
Repeat 35507 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
02 11 12 27 28 37

D:\work>

第434回、第435回の連続で2等だ!
154名無しさん@夢いっぱい:2009/03/21(土) 18:45:09 ID:ZLso9SqF
面白いなWWW






馬鹿杉てWWW
155名無しさん@夢いっぱい:2009/03/22(日) 01:22:27 ID:W6rcWE0p
第437回結果 02 05 11 21 23 43 (15)
>>58の設定ファイルで
From 112004 # 表示を開始する行番号
Repeat 112004 # 反復する回数
に変更したら
D:\work>mtntor mtntor.ini
02 05 11 21 23 36
3等。

1口〜100000口(10万口)で…
0個一致は38001口
1個一致は43083口
2個一致は16270口
3個一致は2465本
4個一致は181本
5個一致は0
6個一致は0
小計100000口

100001口〜200000口(さらなる10万口)で…
0個一致は37969口
1個一致は43035口
2個一致は16223口
3個一致は2604本
4個一致は168本
5個一致は1本! (02 05 11 21 23 36 )
6個一致は0
小計100000口

合計200000口(20万口、4000万円ぶん)で3等1本orz
156名無しさん@夢いっぱい:2009/04/03(金) 22:59:27 ID:aVxzqOnQ
439回結果 11 14 20 28 32 41 (27)
>>58の設定ファイルで
From 142879 # 表示を開始する行番号
Repeat 142879 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
11 14 20 27 28 41

D:\work>

2等だ!
157名無しさん@夢いっぱい:2009/05/15(金) 01:57:07 ID:BFPkMwn0
445回結果 10 20 23 26 37 40 (09)
>>58の設定ファイルで
From 40082 # 表示を開始する行番号
Repeat 40082 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
09 10 20 23 26 37

D:\work>

2等だ!
158名無しさん@夢いっぱい:2009/05/16(土) 21:33:28 ID:+XUJemgA
プッ
159名無しさん@夢いっぱい:2009/06/13(土) 23:52:20 ID:MHNwFlMk
449回結果 19 20 21 23 27 32 (24)
>>58の設定ファイルで
From 131493 # 表示を開始する行番号
Repeat 131493 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
19 20 21 23 24 32

D:\work>

2等だ!
160名無しさん@夢いっぱい:2009/07/03(金) 01:32:53 ID:0g+JsTUA
2009年7月2日木曜日
452回結果 01 05 25 27 29 40 (19)

>>58の設定ファイルで
From 66900 # 表示を開始する行番号
Repeat 66900 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
01 05 25 27 29 40

D:\work>

1等!!

>>117(2008年5月1日木曜日)以来、1等は二回目だ。
161名無しさん@夢いっぱい:2009/07/30(木) 03:03:15 ID:jJg9KlZI
ぶっちゃけこんなもん意味ないだろ
162名無しさん@夢いっぱい:2009/07/30(木) 04:25:15 ID:Vhn65VOQ
結果出ないと分からん
って所にボッキした
163名無しさん@夢いっぱい:2009/09/04(金) 08:06:15 ID:rQkZjNVI
第461回
抽せん日 2009年9月3日
本数字 08 10 13 30 32 42
ボーナス数字 12


>>58の設定ファイルで
From 164827 # 表示を開始する行番号
Repeat 164827 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
08 10 13 30 32 42

1等!!

>>117 >>160 につづいて、1等は三回目だ。
164名無しさん@夢いっぱい:2009/09/06(日) 02:14:57 ID:JnXegOaF
信頼のおけるCゲンカーさんにお願いがあります。
ミニロト31to5から、お互いに3個以上一致しない組合せの最大口数は何口になるのでしょうか?
作成するプログラムかアイデアがあれば教えていただけないでしょうか。
165名無しさん@夢いっぱい:2009/09/11(金) 09:01:32 ID:e2CTSmD4
462回結果 02 04 06 16 31 33 (05)
>>58の設定ファイルで
From 15197 # 表示を開始する行番号
Repeat 15197 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
02 04 05 06 16 31

D:\work>

2等だ!
166-:2009/09/13(日) 13:37:24 ID:/XnlG8ju
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define P 10000
#define Q 43
#define R 256

void lt6(char *a);
int match(char *a,char *b);
void set0(char *a);

void main(int argc,char *argv[]){
  if(argc==3){
    char buf[R],*mem,*tab,*p1,*p2;
    int i,j,line;
    long cnt;
    FILE *fp;

    srand((unsigned)time(NULL));
    mem=malloc(P*Q); tab=malloc(P*Q);
    fp=fopen(argv[1],"r");
    p1=tab; line=0;
    while(fgets(buf,R-1,fp)!=NULL){
      set0(p1);
      i=0;
      while(i<18){
        j=10*(buf[i]-48)+buf[i+1]-49;
        if(j>=0 && j<Q) *(p1+j)=1; i+=3; }
      p1+=Q; line++; }
    *p1=-1; fclose(fp);
167-:2009/09/13(日) 13:38:45 ID:/XnlG8ju
/*
  A=165613/6096454=1/37
  1.5A=1/25 0.6A=1/61
  0.95A=1/39 1.05A=1/35
  B=(1+222+9990+155400+990675)/6096454=1/5.27
  */
    fp=fopen(argv[2],"w");
    cnt=0; p1=mem;
    while(cnt<P*R){
      lt6(p1); p2=mem;
      while(p2<p1){
        i=match(p1,p2);
        if(i>2) break;
        p2+=Q; }
      if(p1==p2){
        p2=tab; i=0;
        while(*p2!=-1){
          j=match(p1,p2);
          if(j>4) break; if(j>2) i++; p2+=Q; }
        if(*p2==-1 && i<line/37){
          i=j=0;
          while(i<Q && j<6){
            if(*(p1+i)){
              fprintf(fp,"%02d ",i+1); j++; }
            i++; }
          fprintf(fp,"\n"); p1+=Q; printf("%7ld\r",cnt); }
        else cnt++; }
      else cnt++; }
    fclose(fp); free(mem); free(tab); printf("\n");
  }
  else printf("l125.c\n");
}
168-:2009/09/13(日) 13:39:50 ID:/XnlG8ju
void lt6(char *a){
  int i,j;

  set0(a);
  i=0;
  while(i<6){
    j=rand()%Q;
    if(*(a+j)==0){
      *(a+j)=1; i++; }}
}

int match(char *a,char *b){
  int i,j;

  i=j=0;
  while(i<Q){
    if(*(a+i) && *(b+i)) j++; i++; }
  return(j);
}

void set0(char *a){
  int i;

  i=0;
  while(i<Q){
    *(a+i)=0; i++; }
}
169-:2009/09/13(日) 13:45:32 ID:/XnlG8ju
170名無しさん@夢いっぱい:2009/09/13(日) 15:26:05 ID:bnsdinG/
04 07 08 30 31 / 02 07 19 24 25 / 05 11 19 24 31 / 08 09 13 23 28 / 09 11 14 22 29 /
01 18 19 24 29 / 02 05 06 08 21 / 11 16 21 22 28 / 08 15 17 18 25 / 02 07 18 27 30 /
06 13 16 18 21 / 02 20 23 24 31 / 06 14 16 17 23 / 01 08 10 22 23 / 03 10 11 18 21 /
02 18 19 23 28 / 08 09 18 26 31 / 07 14 15 22 23 / 01 11 18 23 26 / 07 16 19 28 29 /
08 11 20 26 29 / 01 17 20 22 28 / 04 12 14 27 31 / 07 12 20 22 26 / 16 18 22 23 27 /
03 13 14 18 29 / 06 08 10 17 20 / 06 07 20 25 28 / 11 13 19 27 29 / 09 14 20 21 24 /
03 11 16 24 26 / 01 07 12 29 31 / 15 17 21 24 27 / 11 15 20 24 28 / 10 13 24 25 31 /
02 05 09 12 18 / 01 11 14 21 30 / 01 04 06 26 27 / 17 23 25 30 31 / 02 15 16 22 24 /
10 13 14 16 20 / 01 10 15 16 18 / 02 04 06 13 31 / 05 13 14 26 31 / 01 10 25 27 29 /
07 09 12 13 27 / 06 07 21 27 31 / 03 13 19 20 26 / 04 07 10 16 27 / 04 06 08 12 19 /
10 11 12 25 26 / 05 17 18 26 29 / 06 08 23 25 27 / 02 09 13 17 24 / 01 04 05 09 17 /
14 16 19 25 30 / 01 03 07 23 28 / 12 15 17 28 29 / 02 09 21 26 28 / 09 10 18 23 29 /
04 25 26 29 30 / 03 04 08 14 28 / 03 15 22 30 31 / 06 15 18 20 27 / 03 07 15 26 27 /
05 08 22 24 29 / 10 21 22 29 31 / 04 06 07 14 29 / 03 05 17 20 27 / 12 15 21 23 30 /
09 22 24 26 27 / 05 09 19 20 29 / 13 24 26 28 29 / 01 09 22 25 30 / 03 08 09 21 30 /
02 12 20 25 29 / 02 05 14 24 30 / 01 09 16 26 29 / 03 08 10 12 15 / 06 10 18 28 30 /
04 10 15 19 31 / 01 03 09 11 13 / 01 02 06 12 17 / 02 03 16 17 25 / 02 11 22 26 30 /
03 05 07 10 25 / 04 10 17 24 26 / 04 07 21 23 25 / 01 07 14 17 26 / 03 07 20 24 29 /
01 10 26 30 31 / 05 17 19 22 23 / 04 16 19 20 22 / 14 20 23 27 28 / 13 16 23 29 30 /
08 15 20 21 22 / 06 15 19 24 26 / 06 07 09 11 16 / 02 03 04 23 27 / 04 12 16 24 28 /
05 13 25 27 30 / 05 19 25 26 28 / 07 09 17 21 22 / 03 04 15 16 29 / 02 11 12 24 27 /
03 06 09 19 27 / 02 10 12 13 23 / 02 03 09 14 15 / 04 10 14 22 25 / 13 15 16 27 31 /
05 07 24 27 28 / 04 05 12 20 30 / 12 19 21 25 27 / 11 13 18 20 31 / 03 06 11 20 22 /
04 13 22 24 30 / 06 11 12 13 30 / 05 14 15 21 29 / 03 04 18 24 31 / 05 11 14 16 18 /
03 07 13 17 31 / 02 04 14 19 26 / 08 16 17 29 31 / 02 08 10 11 31 / 01 02 05 15 25 /
03 15 23 24 25 / 01 08 17 19 21 / 01 12 13 21 26 / 09 10 11 27 28 / 04 09 12 15 26 /
06 12 18 24 25 / 02 14 28 29 31 / 07 10 13 19 30 / 17 18 20 21 23 / 01 03 12 16 20 /
02 03 20 28 30 / 07 13 16 22 25 / 03 04 05 19 21 / 01 04 08 24 25 / 09 10 12 20 31 /
04 07 17 18 28 / 12 14 18 26 30 / 06 17 19 29 30 / 05 06 17 28 31 / 10 12 17 18 27 /
04 11 12 23 29 / 05 06 07 26 30 / 02 03 12 19 31 / 11 12 15 19 22 / 01 02 07 11 20 /
171名無しさん@夢いっぱい:2009/09/13(日) 15:26:21 ID:bnsdinG/
02 17 22 27 31 / 01 04 14 18 20 / 15 23 26 29 31 / 01 14 22 24 31 / 06 22 25 26 31 /
07 09 15 25 31 / 10 19 21 23 24 / 11 13 14 17 28 / 04 08 13 21 29 / 04 09 16 18 30 /
08 18 19 20 30 / 05 08 10 16 19 / 01 06 08 09 14 / 07 15 16 17 30 / 05 10 12 22 28 /
07 11 17 23 27 / 04 20 26 28 31 / 07 08 09 10 24 / 18 21 25 28 29 / 03 16 21 23 31 /
01 02 08 13 30 / 08 09 11 12 17 / 10 12 14 24 29 / 12 17 19 20 24 / 02 04 10 20 21 /
07 18 19 21 26 / 05 06 10 14 27 / 01 02 03 22 29 / 02 03 06 18 26 / 04 05 08 18 27 /
03 05 06 12 23 / 01 08 11 15 27 / 09 12 14 19 28 / 04 05 06 11 15 / 05 11 20 21 25 /
14 15 16 26 28 / 03 10 14 23 30 / 09 11 20 23 30 / 02 15 18 21 31 / 01 05 06 20 24 /
05 09 16 22 31 / 20 27 29 30 31 / 02 16 20 26 27 / 04 13 15 20 23 / 01 09 21 23 27 /
05 12 13 15 24 / 08 17 26 27 30 / 05 08 11 28 30 / 06 07 08 13 15 / 05 07 13 18 23 /
14 15 17 20 31 / 11 17 24 25 29 / 13 15 18 22 28 / 09 13 19 21 31 / 01 06 13 19 28 /
04 11 17 21 31 / 09 11 18 19 25 / 03 09 17 23 26 / 04 15 27 28 30 / 02 06 09 22 23 /
09 12 16 23 25 / 03 13 21 22 27 / 02 06 10 15 29 / 02 07 13 14 21 / 05 12 16 27 29 /
10 18 20 22 24 / 01 03 06 21 25 / 08 13 20 24 27 / 08 12 16 22 30 / 07 10 15 21 28 /
03 08 19 23 29 / 04 09 20 25 27 / 03 12 13 25 28 / 01 07 19 22 27 / 04 07 11 13 26 /
02 08 14 18 22 / 01 03 24 27 30 / 07 08 11 14 25 / 01 19 20 25 31 / 08 12 21 24 31 /
03 12 14 17 21 / 06 09 10 13 26 / 08 14 23 24 26 / 01 05 07 16 21 / 03 10 17 19 28 /
01 02 10 24 28 / 06 09 12 21 29 / 02 08 09 27 29 / 05 09 10 15 30 / 11 15 18 29 30 /
01 13 14 23 25 / 01 03 05 08 31 / 04 05 16 23 26 / 06 16 24 30 31 / 01 04 19 23 30 /
05 10 13 17 21 / 06 14 18 19 31 / 07 08 16 20 23 / 08 19 27 28 31 / 02 04 11 25 28 /
02 05 13 20 22 / 04 12 18 21 22 / 02 07 08 12 28 / 03 11 25 27 31 / 08 14 16 21 27 /
04 13 17 19 25 / 06 22 27 28 29 /
172名無しさん@夢いっぱい:2009/09/13(日) 15:33:23 ID:bnsdinG/
>>164
>>170-171は、ランダムで100万とおり出力したものから257とおりを抽出した。
たぶん最大ではないようなきがする。
173名無しさん@夢いっぱい:2009/09/14(月) 23:30:25 ID:DTEnJcGW
これって意味あるの?
174名無しさん@夢いっぱい:2009/09/15(火) 11:10:06 ID:nLM5rbk3
>>172
1等当てるより難しい。偶然では出そうもないから。

>>173
中途半端、インチキ、イカサマを排除するため。
175-:2009/09/17(木) 23:49:25 ID:N5VpopA+
#include <stdio.h>
#include <stdlib.h>
#define P 5000
#define Q 43

void set0(char *a){
  int i;

  i=0;
  while(i<Q){
    *(a+i)=0; i++; }
}

void main(int argc,char *argv[]){
  if(argc==3){
    char buf[128],*mem,*p1;
    int i,j,line,m[7],n1,n2,n3,n4,n5,n6;
    long cnt;
    FILE *fp;

    mem=malloc(P*Q);
    fp=fopen(argv[1],"r"); p1=mem; line=0;
    while(fgets(buf,127,fp)!=NULL){
      set0(p1);
      i=9;
      while(i<27){
        j=10*(buf[i]-48)+buf[i+1]-49; *(p1+j)=1; i+=3; }
        p1+=Q; line++; }
    fclose(fp); *p1=-1;
176-:2009/09/18(金) 00:00:19 ID:SmLPwVwd
    fp=fopen(argv[2],"w");
    n1=0; cnt=0;
    while(n1<Q-5){
    n2=n1+1;
    while(n2<Q-4){
    n3=n2+1;
    while(n3<Q-3){
    n4=n3+1;
    while(n4<Q-2){
    n5=n4+1;
    while(n5<Q-1){
    n6=n5+1;
    while(n6<Q){
      if(n2+n3+n4+n5+n6-5*n1==15) printf("%02d...\r",n1+1);
      i=0;
      while(i<7){
        m[i]=0; i++; }
      p1=mem;
      while(*p1!=-1){
        i=0;
        if(*(p1+n1)) i++; if(*(p1+n2)) i++; if(*(p1+n3)) i++;
        if(*(p1+n4)) i++; if(*(p1+n5)) i++; if(*(p1+n6)) i++;
        if(i>4) break; /* caution */
        m[i]++; p1+=Q; }
      if(*p1==-1 && m[3]==9 && m[4]==3){
        fprintf(fp,"%02d %02d %02d %02d %02d %02d\n",n1+1,n2+1,n3+1,n4+1,n5+1,n6+1);
        cnt++;
      }
      n6++; } n5++; } n4++; } n3++; } n2++; } n1++; }
    fclose(fp); free(mem); printf("%d %ld\n",line,cnt);
  }
  else printf("l011.c\n");
}
与えるデータは
ttp://www.geocities.jp/k3np5/dat090906.zip
こんな感じ。
177マンカス ◆0Q42WVysyw :2009/09/18(金) 02:25:45 ID:lu16KnSy
>>176
もう、いいよ。お疲れ
178名無しさん@夢いっぱい:2009/09/18(金) 12:40:12 ID:dfNVDE1E
463回結果 10 13 16 25 30 42 (28)
>>58の設定ファイルで
From 27371 # 表示を開始する行番号
Repeat 27371 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
10 16 25 28 30 42

D:\work>

2等だ!
179名無しさん@夢いっぱい:2009/10/02(金) 03:50:32 ID:LbUawBan
#define COMMENT '#' /* 【ファイル名】idline.c */
#define YEAR "20" /* 【コンパイル】bcc32 idline.c */
#define SIZE 256 /* 【実行】idline < input.txt > output.txt */
#include <stdlib.h> /* 【用途】日付とIDの行の先頭に#を付加できる */
#include <stdio.h>
#include <string.h>
int main(void) {
  char c[SIZE], cYear[ ] = "20 / / ( ) : : ID:";
  char *p;
  for(;;) {
    p = fgets(c, SIZE, stdin);
    if(p == NULL) {
      break;
    }
    p = strstr(p, YEAR);
    while(p != NULL) {
      if(c[0] != ' ' && p[4] == cYear[4] && p[7] == cYear[7] && p[10] == cYear[10]
&& p[13] == cYear[13] && p[17] == cYear[17] && p[20] == cYear[20] && p[24] == cYear[24]
&& p[25] == cYear[25] && p[26] == cYear[26]) {
        fputc(COMMENT, stdout); /* 日付とIDの行の先頭に#を付加した */
        break;
      }
      p++;
      p++;
      p = strstr(p, YEAR);
    }
    fputs(c, stdout); /* 入力した行をそのまま出力した */
  }
  return EXIT_SUCCESS;
}
180179:2009/10/02(金) 03:54:50 ID:LbUawBan
>>179
cYear[ ] = "20 / / ( ) : : ID:"; を訂正して、
cYear[ ] = "20 / / ( )  : :  ID:";にします。
cYear[ ] = "2009/10/02(金) 03:50:32 ID:";
181179:2009/10/02(金) 03:58:27 ID:LbUawBan
#define COMMENT '#' /* 【ファイル名】idline.c */
#define YEAR "20" /* 【コンパイル】bcc32 idline.c */
#define SIZE 256 /* 【実行】idline < input.txt > output.txt */
#include <stdlib.h> /* 【用途】日付とIDの行の先頭に#を付加できる */
#include <stdio.h>
#include <string.h>
int main(void) {
  char c[SIZE], cYear[ ] = "2009/10/02(金) 03:50:32 ID:";
  char *p;
  for(;;) {
    p = fgets(c, SIZE, stdin);
    if(p == NULL) {
      break;
    }
    p = strstr(p, YEAR);
    while(p != NULL) {
      if(c[0] != ' ' && p[4] == cYear[4] && p[7] == cYear[7] && p[10] == cYear[10]
&& p[13] == cYear[13] && p[17] == cYear[17] && p[20] == cYear[20] && p[24] == cYear[24]
&& p[25] == cYear[25] && p[26] == cYear[26]) {
        fputc(COMMENT, stdout); /* 日付とIDの行の先頭に#を付加した */
        break;
      }
      p++;
      p++;
      p = strstr(p, YEAR);
    }
    fputs(c, stdout); /* 入力した行をそのまま出力した */
  }
  return EXIT_SUCCESS;
}
182名無しさん@夢いっぱい:2009/10/02(金) 04:11:35 ID:LbUawBan
05 10 11 33 42 43 / 03 09 26 27 33 34 / 07 12 16 32 39 43 / 12 13 15 18 20 30 / 01 24 26 32 39 40 /
03 06 08 10 28 35 / 14 15 22 37 38 43 / 10 17 22 24 29 30 / 03 22 25 33 37 41 / 08 09 19 22 25 29 /
02 08 28 32 33 42 / 01 12 18 21 23 31 / 04 13 24 28 30 39 / 11 13 19 24 36 43 / 11 19 23 27 28 29 /
11 15 28 36 38 39 / 07 09 11 14 17 21 / 06 08 16 31 34 38 / 03 04 11 19 25 31 / 16 22 27 30 31 36 /
04 16 18 26 31 37 / 10 13 22 23 27 39 / 03 10 14 18 27 32 / 09 12 26 28 35 39 / 02 25 27 29 33 40 /
13 16 20 23 33 36 / 01 05 25 27 39 41 / 01 09 10 17 32 43 / 02 14 20 32 35 40 / 03 11 18 21 29 41 /
01 06 08 24 36 37 / 20 30 32 34 42 43 / 03 15 19 20 22 27 / 02 04 07 17 29 42 / 04 12 15 16 33 38 /
06 09 19 20 37 43 / 01 13 17 34 37 40 / 08 09 27 28 38 43 / 15 31 34 36 41 42 / 01 05 18 19 24 33 /
02 08 24 26 29 35 / 15 20 21 35 41 43 / 05 14 19 29 40 42 / 25 29 30 34 37 38 / 02 16 21 23 39 40 /
02 03 05 18 20 37 / 03 17 26 31 35 36 / 13 14 24 32 33 38 / 04 06 09 23 26 30 / 11 17 23 34 39 41 /
01 08 14 16 26 42 / 04 21 24 27 40 41 / 05 07 08 18 22 40 / 02 05 09 14 15 16 / 07 12 31 33 36 37 /
02 06 11 12 13 27 / 02 05 13 30 40 43 / 09 12 24 30 34 40 / 09 21 31 32 34 35 / 11 17 18 25 30 32 /
15 21 30 33 37 40 / 05 15 20 26 28 29 / 04 10 19 23 40 43 / 09 10 11 15 27 35 / 01 15 23 38 40 41 /
05 09 28 31 36 40 / 01 04 07 13 16 25 / 02 05 12 29 31 39 / 02 07 10 20 26 41 / 12 22 23 35 38 42 /
02 09 22 36 42 43 / 04 05 15 17 21 39 / 01 04 05 10 30 35 / 06 10 14 20 29 34 / 01 02 03 19 30 36 /
10 12 13 17 21 26 / 08 11 13 17 31 33 / 05 13 16 17 32 35 / 02 07 33 34 38 39 / 13 20 27 31 35 42 /
04 05 06 11 20 38 / 16 19 20 25 32 41 / 10 11 21 34 36 37 / 08 15 16 22 24 28 / 03 04 13 15 29 43 /
06 13 18 25 39 42 / 01 06 11 15 17 26 / 08 10 14 25 38 40 / 03 07 11 12 24 38 / 10 22 32 37 40 42 /
07 09 16 29 38 41 / 05 06 21 27 36 43 / 05 08 35 37 38 41 / 05 11 12 14 18 36 / 10 15 19 26 31 39 /
05 07 16 27 37 42 / 01 12 17 20 24 35 / 02 15 17 23 25 37 / 02 09 13 18 19 23 / 07 13 14 27 30 41 /
06 07 17 22 28 33 / 01 02 08 10 12 15 / 01 04 20 32 33 37 / 03 06 13 30 32 37 / 04 19 22 34 35 37 /
03 12 21 22 36 40 / 07 13 15 19 28 42 / 08 29 30 32 39 41 / 04 09 14 36 39 41 / 02 07 19 27 31 43 /
06 23 29 32 33 43 / 10 13 16 28 37 43 / 09 17 20 23 28 42 / 06 07 12 21 25 41 / 14 17 18 20 33 41 /
09 10 23 24 25 33 / 07 28 32 35 36 41 / 06 10 18 31 33 40 / 03 05 23 25 32 38 / 05 16 21 22 26 38 /
03 12 14 19 28 43 / 04 18 32 35 38 43 / 18 21 22 27 28 37 / 03 16 29 36 39 42 / 07 22 24 27 32 34 /
14 25 26 29 36 43 / 10 16 17 19 36 38 / 01 11 22 29 31 32 / 07 18 20 23 24 39 / 11 22 26 28 30 40 /
03 07 08 09 15 31 / 07 14 18 25 28 34 / 04 12 20 22 25 43 / 01 16 29 33 34 35 / 01 04 06 14 19 27 /
01 08 09 20 21 39 / 03 04 08 23 34 36 / 06 13 22 26 36 41 / 11 19 26 35 41 42 / 16 18 23 25 27 35 /
07 10 19 21 29 35 / 06 11 14 23 31 37 / 02 06 21 26 37 42 / 05 23 24 26 34 42 / 03 09 12 13 41 42 /
01 03 23 27 42 43 / 26 30 31 33 38 43 / 08 14 21 23 30 43 / 01 04 09 11 18 42 / 03 14 15 34 35 39 /
183名無しさん@夢いっぱい:2009/10/02(金) 04:11:58 ID:LbUawBan
06 24 25 26 27 31 / 04 10 26 27 28 36 / 08 12 19 24 31 42 / 02 24 25 28 38 41 / 12 15 19 29 32 34 /
02 11 20 21 24 31 / 01 06 16 21 28 30 / 03 15 21 24 32 42 / 01 15 25 28 31 35 / 08 17 18 21 34 42 /
03 23 29 30 31 40 / 06 10 21 32 38 39 / 01 05 12 13 22 28 / 03 08 17 40 41 43 / 12 17 19 27 30 39 /
09 17 24 31 37 41 / 02 09 11 30 33 41 / 18 19 36 37 39 40 / 17 21 25 33 35 38 / 12 25 28 30 36 42 /
03 09 16 25 30 43 / 01 17 18 28 29 36 / 03 05 09 11 22 39 / 05 07 24 25 35 43 / 04 05 07 14 26 33 /
14 16 17 22 25 39 / 01 18 20 25 26 38 / 02 03 22 28 29 34 / 13 14 19 21 25 37 / 03 06 14 16 24 41 /
04 07 11 15 37 41 / 20 28 31 34 37 39 / 02 18 24 27 30 42 / 06 09 15 24 29 39 / 11 12 31 35 40 43 /
13 21 28 33 34 41 / 04 08 11 21 26 32 / 04 09 15 25 32 40 / 07 08 11 23 25 42 / 20 24 27 29 36 38 /
02 04 05 24 32 36 / 03 05 07 17 30 34 / 11 13 18 22 34 38 / 08 11 20 29 37 40 / 04 16 17 27 34 43 /
14 21 27 31 33 39 / 05 08 09 10 13 34 / 06 07 23 34 35 40 / 01 07 21 26 34 43 / 08 15 17 20 32 38 /
08 12 20 23 27 41 / 10 14 22 31 35 41 / 02 17 21 22 32 41 / 02 04 22 31 38 40 / 01 02 11 16 38 43 /
06 17 27 38 41 42 / 03 07 16 19 33 40 / 06 09 14 33 35 42 / 01 13 21 36 38 42 / 02 04 06 15 18 34 /
08 09 12 14 32 37 / 05 10 15 22 25 36 / 09 13 29 35 36 37 / 02 08 14 19 34 41 / 03 18 28 31 38 42 /
02 03 04 09 10 21 / 07 08 13 26 37 39 / 09 10 12 16 20 31 / 16 19 23 24 30 37 / 08 15 18 25 33 43 /
05 14 20 25 30 31 / 04 06 12 28 37 40 / 02 13 14 26 28 31 / 12 18 22 26 29 33 / 06 07 18 19 30 38 /
14 15 17 27 36 40 / 09 15 18 21 26 36 / 01 02 06 20 22 23 / 05 06 08 15 30 42 / 04 13 23 31 32 41 /
04 14 21 28 29 38 / 03 10 11 16 23 26 / 08 22 33 35 36 39 / 02 10 14 24 39 43 / 10 16 18 30 34 39 /
10 15 23 28 30 32 / 11 18 26 27 39 43 / 03 08 13 16 21 27 / 11 24 28 33 35 37 / 06 11 16 25 36 40 /
01 07 22 30 39 42 / 01 03 10 13 24 31 / 03 13 20 38 39 40 / 01 08 11 27 30 34 / 09 14 20 22 24 26 /
07 17 19 23 26 32 / 19 20 21 23 34 38 / 02 06 17 19 24 40 / 10 19 25 27 34 42 / 10 12 34 38 41 43 /
07 15 16 26 30 35 / 05 18 23 28 41 43 / 04 07 20 30 36 40 / 05 12 17 23 33 40 / 01 12 26 30 37 41 /
16 18 24 29 40 43 / 01 07 10 14 23 36 / 08 10 19 20 30 33 / 02 12 16 25 26 34 / 01 02 07 09 28 37 /
184名無しさん@夢いっぱい:2009/10/02(金) 04:13:35 ID:LbUawBan
>>182-183は、ランダムで1000万とおり出力したものから260とおりを抽出した。
たぶん最大ではないようなきがする。
185名無しさん@夢いっぱい:2009/10/03(土) 03:29:28 ID:4UPTltzW
/* 【ファイル名】mtform.c
【コンパイル】bcc32 mtform.c
【実行】mtform < input.txt > output.txt
【用途】mtNtoR(>>57-71)の出力と同様に、行の先頭に半角空白を付加する。6個ある行のみ出力する。
【注意】sscanf()では日本語を処理できないとおもわれる(行頭に#がある場合、sscanf()を使用しない) */
#define COMMENT '#'
#define LOTO 6
#define SIZE 256
#include <stdlib.h>
#include <stdio.h>
int main(void) {
  int i1, i2, i3, i4, i5, i6, i;
  char *p;
  char c[SIZE];
  for(;;) {
    p = fgets(c, SIZE, stdin);
    if(p == NULL)
      break;

    if(c[0] == COMMENT) { /* 行頭に#がある */
      fputs(c, stdout); /* 入力した行をそのまま出力した */
      continue;
    }
    i = sscanf(c, "%d %d %d %d %d %d ", &i1, &i2, &i3, &i4, &i5, &i6);
    if(i == LOTO) /* 1行に6個の数を捕捉した */
      fprintf(stdout, " %02d %02d %02d %02d %02d %02d\n", i1, i2, i3, i4, i5, i6);
/* 行の先頭に半角空白を付加した */
  }
  return EXIT_SUCCESS;
}
186名無しさん@夢いっぱい:2009/10/03(土) 03:36:53 ID:4UPTltzW
コンパイルするには、全角空白をタブ(\t)か複数の半角空白に置換します
187名無しさん@夢いっぱい:2009/10/03(土) 05:14:21 ID:4UPTltzW
以下のプログラム(subset)では、3個以上一致する行を排除したテキストを出力する。
ロト6の組合せからなるテキストファイルを入力する。第1行もロト6の組合せでなければならない。
出力は入力ファイルの部分集合である。出力には、入力ファイルの第1行がふくまれている。

main()
1.コマンドと一緒に指定されたテキストファイルをオープンする。
2.高速化のため、中間ファイルとしてバイナリファイル(subset.bin)を生成する。
3.バイナリファイルから6バイトを読み取って、双方向リスト(sLine)の起点としてロト6の組合せを保持する。
4.バイナリファイルを読みながら3個以上一致する組合せを排除するために、
現在、双方向リストとして保持しているすべての組合せにわたって、一致する個数を調査する。
5.3個以上一致する場合、何もしない。
6.さもなければ、双方向リストを伸長して組合せを追加する。
7.双方向リストの内容で、バイナリファイルを上書きする(subset.binは縮小する)
8.バイナリファイルから標準出力(stdout)にテキストを出力する。

BinFile()
1.テキストファイルから1行読み取って配列に記憶する。6個の二桁は、1, 4, 7, 10, 13, 16の位置にある。
2.二桁を整数に変換する。
3.整数として1バイトをバイナリファイルに出力する。

iCount()
1、現在、保持しているすべての組合せにわたって、双方向リストを逆方向にたどりながら一致する個数を調査する。
2.双方向リストの各ノードに対して、文字列の検索を反復するループではなく一度の計算でカウントする。
3.一致した個数の最大値を返す。

2.8 GHzのPentium 4 プロセッサは、BinFile()およびiCount()で、時間がかかる場合がある(1000万行なら30秒程度)
しかし、文字列の検索を反復するループ(注2)ではなく一度の計算でカウントできるため、大幅に高速だ。
400MHzのCeleron プロセッサでも実行できた。MS-DOS 6.2(注1), Windows 98, FreeBSD 4.5で確認した。
(注1)BorlandのTurbo C++ 4.0でコンパイルした。
(注2)100万行で4〜5分かかったきがする。
188名無しさん@夢いっぱい:2009/10/03(土) 05:14:58 ID:4UPTltzW
/* 【ファイル名】subset.h
【コンパイル】bcc32 -esubset subset.c pSetting.c BinFile.c pFirst.c iCount.c pAdd.c Update.c bin2txt.c
gcc -o subset subset.c pSetting.c BinFile.c pFirst.c iCount.c pAdd.c Update.c bin2txt.c
【実行】subset filename
subset input.txt > output.txt
【重要】mtntor.exe(>>57-71)の出力と同様に行頭に半角空白が付加されたデータを入力する
 01234567890123456789
  06 24 27 30 32 38
*/
#define OVERLAP 3
#define BIN_FILE "subset.bin"
#define TOTAL 44 /* 43 + 1 */
#define LOTO 6
#define COUNT 1
#include <stdlib.h>
#include <stdio.h>
typedef struct sLine sLine;
struct sLine {
  sLine *pPrev;
  sLine *pNext;
  char cBall[TOTAL];
};

FILE *pSetting(int, char *);
void BinFile(FILE *);
sLine *pFirst(FILE *);
int iCount(char *, sLine *);
sLine *pAdd(char *, sLine *);
void Update(sLine *);
void bin2txt(void);
189名無しさん@夢いっぱい:2009/10/03(土) 05:15:33 ID:4UPTltzW
#include "subset.h" /* 【ファイル名】subset.c */
int main(int argc, char *argv[]) {
  FILE *pFile;
  FILE *pBin;
  sLine *pO;
  sLine *p;
  int i;
  unsigned int u;
  char c[LOTO];
  pFile = pSetting(argc, argv[1]);/* テキストファイルをオープンした */
  BinFile(pFile);/* 中間ファイルとしてバイナリファイルを生成した */
  fclose(pFile);
  pBin = fopen(BIN_FILE, "rb");
  pO = pFirst(pBin); /* 起点として組合せを保持した */
  for(p = pO; ; ) { /* バイナリファイルを読みながら3個以上一致する組合せを排除する */
    u = fread(c, sizeof(char), LOTO, pBin);
    if(u < LOTO)
      break;
/* 現在、保持しているすべての組合せにわたって、一致する個数を調査する */
    i = iCount(c, p);
    if(i >= OVERLAP) /* #define OVERLAP 3 */
      continue;/* 3個以上一致する組合せを排除した */

    p = pAdd(c, p);/* 組合せを追加した */
  }
  fclose(pBin);
  Update(pO);/* バイナリファイルを縮小した */
  bin2txt();/* 標準出力にテキストを出力した */
  return EXIT_SUCCESS;
}
190名無しさん@夢いっぱい:2009/10/03(土) 05:16:57 ID:4UPTltzW
/* 【ファイル名】pSetting.h */
#define GUIDE "subset filename\nsubset input.txt > output.txt\n 04 14 29 34 35 43 o\n04 14 29 34 35 43 x\n"
#define BIN_FILE "subset.bin"
#include <stdlib.h>
#include <stdio.h>
191名無しさん@夢いっぱい:2009/10/03(土) 05:17:53 ID:4UPTltzW
/* 【ファイル名】pSetting.c */
#include "pSetting.h"
FILE *pSetting(int i, char *p) {
  FILE *pFile;

  switch(i) {/* コマンドラインの要素の個数 */
  case 2:/* コマンドおよびファイル名 */
    break;
  default:
    fprintf(stderr, GUIDE);
    exit(EXIT_FAILURE);
  }

  pFile = fopen(p, "rt"); /* テキストファイルをオープンした */
  if(pFile == NULL) {
    perror(p);
    exit(EXIT_FAILURE);
  }

  return pFile;
}
192名無しさん@夢いっぱい:2009/10/03(土) 05:18:41 ID:4UPTltzW
/* 【ファイル名】BinFile.h */
#define BIN_FILE "subset.bin"
#define SIZE 20
#include <stdlib.h>
#include <stdio.h>
/*
【重要】mtntor.exe(>>57-71)の出力と同様に行頭に半角空白が付加されたデータを入力する
 01234567890123456789
  06 24 27 30 32 38
*/
enum {
  BALL1 = 1, /* c[BALL1], c[BALL2], c[BALL3]とは、c[1], c[4], c[7]のことである */
  BALL2 = 4,
  BALL3 = 7,
  BALL4 = 10,
  BALL5 = 13,
  BALL6 = 16 /* c[BALL6]はc[16]であり、6個目のボールはc[16]およびc[17]の二桁が表示されている */
};
193名無しさん@夢いっぱい:2009/10/03(土) 05:19:26 ID:4UPTltzW
/* 【ファイル名】BinFile.c */
#include "BinFile.h"
void BinFile(FILE *pFile) {
  FILE *pBin;
  int i;
  char *pStop;
  char *p;
  char c[SIZE];
  pBin = fopen(BIN_FILE, "wb");
  if(pBin == NULL) {
    perror(BIN_FILE);
    exit(EXIT_FAILURE);
  }
  for(;;) {
    p = fgets(c, SIZE, pFile);
    if(p == NULL) break;
    i = (int)strtol(&c[BALL1], &pStop, 10); /* c[BALL1]およびc[ BALL1 + 1 ]の二桁を整数に変換した */
    fputc(i, pBin); /* 整数としてiをバイナリファイルに出力した */
    i = (int)strtol(&c[BALL2], &pStop, 10);
    fputc(i, pBin);
    i = (int)strtol(&c[BALL3], &pStop, 10);
    fputc(i, pBin);
    i = (int)strtol(&c[BALL4], &pStop, 10);
    fputc(i, pBin);
    i = (int)strtol(&c[BALL5], &pStop, 10);
    fputc(i, pBin);
    i = (int)strtol(&c[BALL6], &pStop, 10);
    fputc(i, pBin);
  }
  fclose(pBin);
}
194名無しさん@夢いっぱい:2009/10/03(土) 05:20:33 ID:4UPTltzW
/* 【ファイル名】pFirst.h */
#define GUIDE "subset filename\nsubset input.txt > output.txt\n 04 14 29 34 35 43 o\n04 14 29 34 35 43 x\n"
#define TOTAL 44 /* 43 + 1 */
#define LOTO 6
#define COUNT 1
#include <stdlib.h>
#include <stdio.h>
typedef struct sLine sLine;
struct sLine {
  sLine *pPrev;
  sLine *pNext;
  char cBall[TOTAL];
};
195名無しさん@夢いっぱい:2009/10/03(土) 05:21:17 ID:4UPTltzW
/* 【ファイル名】pFirst.c */
#include "pFirst.h"
sLine *pFirst(FILE *pBin) {
  char c[LOTO];
  unsigned int u;
  sLine *pO;
/* cBall[1]〜cBall[43]は、calloc()により0に初期化される */
  pO = calloc(1, sizeof(sLine));
  if(pO == NULL) {
    perror("pO = calloc()");
    exit(EXIT_FAILURE);
  }

  u = fread(c, sizeof(char), LOTO, pBin);
  if(u < LOTO) {
    fprintf(stderr, GUIDE);
    exit(EXIT_FAILURE);
  }

  pO->pPrev = NULL;
  pO->pNext = NULL;
  pO->cBall[ c[0] ] = COUNT;/* cBall[1]〜cBall[43]のうち、存在するボール1個をカウント */
  pO->cBall[ c[1] ] = COUNT;
  pO->cBall[ c[2] ] = COUNT;
  pO->cBall[ c[3] ] = COUNT;
  pO->cBall[ c[4] ] = COUNT;
  pO->cBall[ c[5] ] = COUNT;

/* 起点であるpOのメモリもUpdate()により解放される */
  return pO;
}
196名無しさん@夢いっぱい:2009/10/03(土) 05:22:30 ID:4UPTltzW
/* 【ファイル名】iCount.h */
#define TOTAL 44 /* 43 + 1(cBall[0]は使用しない) */
#include <stdlib.h>
typedef struct sLine sLine;
struct sLine {
  sLine *pPrev;
  sLine *pNext;
  char cBall[TOTAL];/* ボールは1〜43であり、cBall[0]は使用しない */
};
197名無しさん@夢いっぱい:2009/10/03(土) 05:23:13 ID:4UPTltzW
/* 【ファイル名】iCount.c */
#include "iCount.h"
/* 文字列の検索を反復するループではなく計算でカウントできる
たとえば、i = 0 + COUNT + 0 + … + 0 + COUNT + 0 + COUNT + 0 */
int iCount(char *c, sLine *p) {
  int i, iMax;

  for(iMax = 0 ; p != NULL; p = p->pPrev) { /* 現在、保持しているすべての組合せにわたって、一致する個数を調査する */
    i = p->cBall[ c[0] ] + p->cBall[ c[1] ] + p->cBall[ c[2] ] + p->cBall[ c[3] ] + p->cBall[ c[4] ] + p->cBall[ c[5] ];
/* たとえば、i = 0 + COUNT + 0 + … + 0 + COUNT + 0 + COUNT + 0 */
    if(i > iMax) {
      iMax = i; /* 一致した個数の最大値 */
    }
  }

  return iMax;
}
198名無しさん@夢いっぱい:2009/10/03(土) 05:23:57 ID:4UPTltzW
/* 【ファイル名】pAdd.h */
#define TOTAL 44 /* 43 + 1 */
#define COUNT 1
#include <stdlib.h>
typedef struct sLine sLine;
struct sLine {
  sLine *pPrev;
  sLine *pNext;
  char cBall[TOTAL];
};
199名無しさん@夢いっぱい:2009/10/03(土) 05:24:31 ID:4UPTltzW
/* 【ファイル名】pAdd.c */
#include "pAdd.h"
sLine *pAdd(char *c, sLine *p) {
  sLine *pNew;
/* cBall[1]〜cBall[43]は、calloc()により0に初期化される */
  pNew = calloc(1, sizeof(sLine));
  if(pNew == NULL) {
    perror("calloc()");
    exit(EXIT_FAILURE);
  }

  pNew->pPrev = p;
  pNew->pNext = NULL;
  pNew->cBall[ c[0] ] = COUNT;/* cBall[1]〜cBall[43]のうち、存在するボール1個をカウント */
  pNew->cBall[ c[1] ] = COUNT;
  pNew->cBall[ c[2] ] = COUNT;
  pNew->cBall[ c[3] ] = COUNT;
  pNew->cBall[ c[4] ] = COUNT;
  pNew->cBall[ c[5] ] = COUNT;

  p->pNext = pNew;
  p = pNew;
  return p;
}
200名無しさん@夢いっぱい:2009/10/03(土) 05:25:17 ID:4UPTltzW
/* 【ファイル名】Update.h */
#define BIN_FILE "subset.bin"
#define TOTAL 44 /* 43 + 1 */
#define COUNT 1
#include <stdlib.h>
#include <stdio.h>
typedef struct sLine sLine;
struct sLine {
  sLine *pPrev;
  sLine *pNext;
  char cBall[TOTAL];
};
201名無しさん@夢いっぱい:2009/10/03(土) 05:25:48 ID:4UPTltzW
/* 【ファイル名】Update.c /
#include "Update.h"
void Update(sLine *pO) {
  int i;
  sLine *pNew;
  sLine *p;
  FILE *pBin;

  pBin = fopen(BIN_FILE, "wb");
  for(p = pO; ; p = pNew) {
    pNew = p->pNext;
    for(i = 1; i < TOTAL; i++) {/* ボールは1〜43 */
      if(p->cBall[i] == COUNT) {/* 存在するボールの番号i */
        fputc(i, pBin); /* 整数としてiをバイナリファイルに出力した */
      }
    }

    free(p);
    if(pNew == NULL) {
      break;
    }
  }

  fclose(pBin);
}
202名無しさん@夢いっぱい:2009/10/03(土) 05:26:32 ID:4UPTltzW
/* 【ファイル名】bin2txt.h */
#define BIN_FILE "subset.bin"
#define SIZE 20
#define LOTO 6
#include <stdlib.h>
#include <stdio.h>
203名無しさん@夢いっぱい:2009/10/03(土) 05:27:05 ID:4UPTltzW
/* 【ファイル名】bin2txt.c */
#include "bin2txt.h"
void bin2txt(void) {
  unsigned int u;
  char c[LOTO], cLine[SIZE];
  FILE *pBin;

  pBin = fopen(BIN_FILE, "rb");
  for(;;) {
    u = fread(c, sizeof(char), LOTO, pBin);
    if(u < LOTO) {
      break;
    }

    fprintf(stdout, " %02d %02d %02d %02d %02d %02d\n", c[0], c[1], c[2], c[3], c[4], c[5]);
  }

  fclose(pBin);
}
204名無しさん@夢いっぱい:2009/10/03(土) 05:32:38 ID:4UPTltzW
たとえば、1000万行のテキストファイルを入力したら、260行になった>>182-183
この260行のファイルを入力しても260行になる。
205名無しさん@夢いっぱい:2009/10/03(土) 05:52:57 ID:4UPTltzW
>>201
/* 【ファイル名】Update.c / を
/* 【ファイル名】Update.c */ に訂正します
206名無しさん@夢いっぱい:2009/10/03(土) 06:14:14 ID:4UPTltzW
>>202のSIZE、>>203のcLine[SIZE]は不要です
207名無しさん@夢いっぱい:2009/10/03(土) 06:19:56 ID:4UPTltzW
>>197
/* たとえば、i = 0 + COUNT + 0 + … + 0 + COUNT + 0 + COUNT + 0 */
/* たとえば、i = 0 + COUNT + COUNT + 0 + COUNT + 0 */
208名無しさん@夢いっぱい:2009/10/07(水) 02:50:05 ID:7dvkJOtM
C言語で確率ってほんとに上がるの?
209名無しさん@夢いっぱい:2009/10/11(日) 01:05:01 ID:D2UG8+58
>>185
ありがとうございます。
iCount() の一致する個数をカウントする部分が良く分らないのですが、
ポインタと構造体が分かっていなければこれ以上の説明は無理でしょうか?
210名無しさん@夢いっぱい:2009/10/11(日) 16:24:21 ID:qQt2n5Gg
#define COUNT 1 /* 【ファイル名】mymain.c */
#include <stdio.h> /* 【コンパイル】bcc32 -emymain mymain.c iCount.c */
#include "iCount.h" /* 【実行】mymain */
sLine s; /* グローバル変数としてsを確保した。cBall[1]〜cBall[43]は、グローバル変数であり0に初期化された */

int iCount(char *, sLine *);

int main(void) {
  int i;
  char c[6] = {1, 4, 19, 28, 34, 40};/* 記憶対象(記憶内容を表示する) */
  char cS[6] = {2, 4, 19, 27, 34, 41};/* 調査対象(記憶対象と一致した個数を表示する) */

  sLine *p = &s; /* ポインタpはsをさす */
  p->cBall[ c[0] ] = COUNT; /* #define COUNT 1 */
  p->cBall[ c[1] ] = COUNT; /* cBall[1]〜cBall[43]のうち、存在するボール1個をカウント */
  p->cBall[ c[2] ] = COUNT;
  p->cBall[ c[3] ] = COUNT;
  p->cBall[ c[4] ] = COUNT;
  p->cBall[ c[5] ] = COUNT;
  p->pPrev = NULL; /* このプログラムは実験用であり、ノードは1個のみであり、双方向リストを形成しない */
  p->pNext = NULL;

  for(i = 1; i < 43; i++)
    printf("%d", p->cBall[i]);/* cBall[1]〜cBall[43]の記憶内容を表示した */

  i = iCount(cS, p);/* i = 0 + COUNT + COUNT + 0 + COUNT + 0(cBall[2], cBall[3], cBall[5]の3個が1) */

  printf("\n\niCount = %d\n", i);/* 記憶対象と一致した個数を表示した */
  return EXIT_SUCCESS;
}
211名無しさん@夢いっぱい:2009/10/11(日) 16:25:46 ID:qQt2n5Gg
D:\work\subset>mymain
100100000000000000100000000100000100000100

iCount = 3

D:\work\subset>
212210:2009/10/11(日) 16:27:39 ID:qQt2n5Gg
>>210
i < 43を
i <= 43に訂正します
213名無しさん@夢いっぱい:2009/10/11(日) 16:36:07 ID:qQt2n5Gg
>>209
D:\work\subset>mymain
1001000000000000001000000001000001000001000
.↑                           ↑第六のボールの41は0だから一致していないことがわかる
第一のボールの2は0だから一致していないことがわかる
214名無しさん@夢いっぱい:2009/10/18(日) 01:44:05 ID:G1ZovYY0
>>210-213

詳しい解説を本当にありがとうございます。
比較処理部分の高速化に興味がありました。
石豆さんのmallocは自分が使っている低級言語にはないから流用できないし。
正直に言うとレベルが違いすぎて他にもまだ分らない部分が
ありますが時間をかけて勉強するつもりです。
215名無しさん@夢いっぱい:2009/12/08(火) 23:54:55 ID:hg/GMEDN
ヤフオクにこんなん出てるな。

http://page4.auctions.yahoo.co.jp/jp/auction/d99473998

月平均100万円以上当選確実?
本当にそうなら売るはずがない。
というか、投資金額がその100倍とかって「言い訳」つきなんだろうな。

216名無しさん@夢いっぱい:2009/12/10(木) 11:53:16 ID:dq+MyFuM
有料の競馬予想とかでも思うけど、そんなに儲かるのなら
自分だけでやっとけよって話だよなw
217名無しさん@夢いっぱい:2009/12/15(火) 18:24:15 ID:PIdaTgAB
                   /スヽ、..  -─…‐| |´ ̄`  、
               //.:,`'´       ヽ\::::::..  \
              ,〈〈::/   /       \>.、:::::..  \
              ,.' .:/  |  .:.:.|       \::\::::::..   \
            / .::/     ',  .:.:.:ト _.二ニ   ヽ‐\::::::..  \
           / .:::/     /\::::::::|'´ x≧、、:::::::::::Yl|´\::::::..  \
          / .::::: ! :|   ィ´ ̄\::| f{、ハ '}ヽ:::::::::[I|J V⌒ヽ,、.  \
         / .::::::::::| ,{:.:.:.:.: |ィにヾ `  ヾツ  |::\:::Ll    \./ \   \
           / .::::::::::/|,' ∨ ::小. ヾり ,       |:::::∧|‐,x    /     \   \
        / .::::::::::/    ∨:::|∧    、-、    .|::/  /  ヽr'´       \  ヽ
.       /  .:::: :/      \|:::::ゝ.,..__ ,.ニ´ / |/_  `二.¬、          ヽ  :.',
      /  .::  /       ',:::::::/ ミ.彡'ニ.´___〉 ヽ´   ` ァ>、        ', :::i
.     /  .:   /        ヽN  /    マ  |、 |\  //  \       |. ::|
     /  :   /             |     ',. 、 トヘ |  \ | |          ハ |
.    /     ,′             |    , ,コ. ヽ \.  \ゝ---┬─┬r'´.:::::. !
   /   .   !                !  、/ /  \ \\   ヽ  / .:::::/ノ .:::::::::リ
.  /  : .:   |               ',  〈_/    \ \`  <}/.:::/ ..::::::::::::/
  /   :::.   |              \  \     \ ト .  ` く ...::::::::::::::,.'
. ′   :::::..   ',                  \ |\       l.  \  \::::::::/|
 |  .   :::::::::...... ヽ、               く_ソ  \     \ |:::\  \´.::::!
 | ::    ::::::::::::::::::::::..`..−  .__         `ーr‐' ヽ.      \::::::::.',   ヽ::/
 |::::::   :::::           `ヽ、_ / ̄ >'      \    ` 、 l     }′
 |:::::::... :...              ハ   ̄ ̄           \       `丶 ._ノ_
 Y:::::::::::::::::::::..........  ::.... __ _. -┴‐∨             \       ヽ `ヽ
  ヽ::::::|:::::::::::::::::::::::::::::::::::::::', ,ニ=-──\           /  \        }
.   \lー----─- 、:::::::::::::∨ ヽ       \    _    / \  ヽ、        ヽ
            ヽ:::::::::「   }       \,∠ -`ヽ/     ヽ.__',\      |
                 ',:::::::| ┌‐'───-----   __ノ /  /   ヽ.       ノ
              | :::ー|    __. -‐         _ノ  /    |`ー-ァ'´
             ,' ,厶::: |‐ ' ´       ____,}      /_. -r‐.‐} ∨
            ノ'´   }:::.7⌒ ー、-‐'´     ∨  _,. -'´  ,′V-─〉
                 |/     ヽ         マ´       /___/
218名無しさん@夢いっぱい:2009/12/25(金) 01:00:08 ID:RYtCMJbq
477回 12 14 16 18 38 41 (17)

>>58の設定ファイルで
From 180605 # 表示を開始する行番号
Repeat 180605 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
12 14 16 17 18 41

D:\work>

2等だ!
2009年9月17日(>>178)以来、3か月ぶりだ。
219名無しさん@夢いっぱい:2010/02/12(金) 00:50:17 ID:2om3AiXo
ポインタでまた挫折。

833 :-:2010/02/11(木) 20:12:42 ID:UNpU/La+
>>753のようなレスを毎回見るので
前スレ794から>>643までの今回の晒し2748口が
3等以上に当せんする確率
(全6096454通りのうち、この2748口のどれかと5個以上数字が
一致するものを数え上げる)を求めたところ
547554/6096454 = 約8.98%であることが分かった。

この処理は何秒くらいかかるのでしょうか。
手元のソフトだと0.1秒も掛からないから不思議。
220-:2010/02/12(金) 23:54:42 ID:J9EV4bLJ
2分くらいだったと思う。
221名無しさん@夢いっぱい:2010/02/19(金) 04:23:25 ID:Vk18BHAj
484回結果 13 19 25 29 32 35 (42)

>>58の設定ファイルで
From 54968 # 表示を開始する行番号
Repeat 54968 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
13 25 29 32 35 42

D:\work>

2等だ!
2009年12月24日(>>218)以来、約2か月ぶりだ。
222名無しさん@夢いっぱい:2010/02/24(水) 05:29:41 ID:fh22p7iA
>>220
石豆さんが応えてくれたの2年ぶりくらいかな
やっぱり何か処理を大幅に省く方法があるのかもしれません
223名無しさん@夢いっぱい:2010/02/26(金) 07:20:09 ID:hsE2bljy
485回結果 14 26 30 33 34 39 (19)

>>58の設定ファイルで
From 98274 # 表示を開始する行番号
Repeat 98274 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
14 19 30 33 34 39

D:\work>

連続で2等だ!
224名無しさん@夢いっぱい:2010/04/09(金) 04:47:51 ID:nQdK1ltf
491回結果 07 09 20 27 31 34 (33)

>>58の設定ファイルで
From 119022 # 表示を開始する行番号
Repeat 119022 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
07 09 20 27 31 33

D:\work>

2等だ! 
225名無しさん@夢いっぱい:2010/05/21(金) 04:36:33 ID:+3bYdYnB
497回結果 06 12 14 17 36 40 (34)

>>58の設定ファイルで
From 2893 # 表示を開始する行番号
Repeat 2893 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
06 12 17 34 36 40

D:\work>

2等だ! 
226名無しさん@夢いっぱい
506回結果 05 11 21 27 37 39 (26)

>>58の設定ファイルで
From 109762 # 表示を開始する行番号
Repeat 109762 # 反復する回数
に変更したら

D:\work>mtntor mtntor.ini
05 11 21 27 37 39

D:\work>

1等だ!! 

>>117 >>160 >>163につづいて、1等は四回目だ。