广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 11210 个阅读者
04:00 ~ 4:30 资料库备份中,需等较久的时间,请耐心等候
 
<<   1   2  下页 >>(共 2 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 产生十个任一乱数
有一题目
要产生10个-9,-4,1,......,101之任一乱数
小弟只晓得随意产生
但是指定要在差5的情形下
真的是想了老半天
就是写不出来
底下是小弟的程式
请 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾中华电信股份有限公司 | Posted:2011-03-23 21:29 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

要有X5..那看起来不像是乱数阿~XD

但如果是要再-9~101之间取乱数的话,那有个前辈讲的『扑克牌取排』作弊的方式可以参考。

就是一开始先建立存有-9~101的阵列。

之后在此阵列的边界内随机取乱数的索引值。
例如:
1.阵列内,每个值的索引为Index(-9) = 0, Index (-4) = 1, ...., Index(101) = 23。
2.针对0~23取整数的乱数。
3.如有抓到同一个索引值,则在重新抓。
4.抓到10个索引值后,再把先前存于阵列内,对应于的值取出就好。

不知是否有符合您的需求?

不过话说,如果每个乱数都X5的话,那么比较像是等差级数值吧XDD


恩...
献花 x1 回到顶端 [1 楼] From:台湾中华电信 | Posted:2011-03-24 08:43 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-03-24 08:43 发表的 : 到引言文
要有X5..那看起来不像是乱数阿~XD

但如果是要再-9~101之间取乱数的话,那有个前辈讲的『扑克牌取排』作弊的方式可以参考。

就是一开始先建立存有-9~101的阵列。

之后在此阵列的边界内随机取乱数的索引值。
例如:
1.阵列内,每个值的索引为Index(-9) = 0, Index (-4) = 1, ...., Index(101) = 23。
2.针对0~23取整数的乱数。
3.如有抓到同一个索引值,则在重新抓。
4.抓到10个索引值后,再把先前存于阵列内,对应于的值取出就好。

不知是否有符合您的需求?

不过话说,如果每个乱数都X5的话,那么比较像是等差级数值吧XDD

小弟也不是很清楚
因为才刚学指标与阵列
而且又是自修学习
跟本没先进可请教
不过还好在此版块有大大肯不辞劳苦的教导小弟
心中也确实感念不少
所以依大大指引的方向再试看看写不写的出来
若不行再向大大讨教
谢谢指导


献花 x0 回到顶端 [2 楼] From:台湾中华电信股份有限公司 | Posted:2011-03-24 17:20 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

请教大大们
小弟这样写为何无法编译
可否帮忙找问题
或者小弟那里错了
谢谢

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int i,j;
  int array[23];
  int index(-9)=0,index(-4)=1,index(1)=2,index(6)=3,index(11)=4,index(16)=5,
    index(21)=6,index(26)=7,index(31)=8,index(36)=9,index(41)=10,index(46)=11,
    index(51)=12,index(56)=13,index(61)=14,index(66)=15,index(71)=16,
    index(76)=17,index(81)=18,index(86)=19,index(91)=20,index(96)=21,
    index(101)=22;
  srand((unsigned)array[23]);
  for(i=1;i<=10;i+=1)
  {
  for(j=-9;j<=101;j+=5)
    {
    array[23]=j;
    j=rand()%23+0;
    printf("%d. %d\n",i,j);
    }
  }
  system("pause");
  return 0;
}


献花 x0 回到顶端 [3 楼] From:台湾中华电信股份有限公司 | Posted:2011-03-25 21:22 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

请贴出compiler显示给您的错误讯息噜^^m

如果找不到要到哪边看,请按View->Other Window->Error List,里面会告诉您无法编译的原因。

这样帮您找问题的人会比较方便 表情


恩...
献花 x0 回到顶端 [4 楼] From:台湾中华电信 | Posted:2011-03-28 09:34 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-03-28 09:34 发表的 : 到引言文
请贴出compiler显示给您的错误讯息噜^^m

如果找不到要到哪边看,请按View->Other Window->Error List,里面会告诉您无法编译的原因。

这样帮您找问题的人会比较方便 表情
大大您好
上面程式有底下错误
expected `,' or `;' before '=' token
小弟再怎么改都没用
后来索性小弟将它改成下面这样
它是可以产生十个乱数
但是都是一成不变的乱数
不知那儿有问题
是否可请大大帮小弟诊断问题所在
谢谢您
以下是所改的程式码

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int i,j;
  int num[23]={-9,-4,1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101};
  srand(num[23]);
  for(i=1;i<=10;i++)
  {
  for(j=0;j<=22;j++)
      {
      num[j]=(-9,-4,1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101);
      j=rand()%22+0;
      printf("%d. %d\n",i,num[j]);
      break;
      }
  }
  system("pause");
  return 0;
}


[ 此文章被csr在2011-03-28 17:20重新编辑 ]


献花 x0 回到顶端 [5 楼] From:台湾中华电信股份有限公司 | Posted:2011-03-28 17:11 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

乱数都一致的问题是您的Random seed给的都一样,所以每次都会产生相同的数值。

乱数在下不熟练,只知道最简单的方法是把时间拿来当seed来产生新乱数。

至于时间要取到多少,会建议到10ms以下,不过也是要看您的需求而定。

至于compile错误的问题,可能是因为在c/c++里面,阵列的使用是用 [] 来指定阵列位置。所以用 () 就会出错。

您可以修改看看,说不定会有效。

关于Index(-9) = 0指的是Index函式传入-9,他会回传阵列位置0。

所以是属于数学表示的方式,造成您的误会,很不好意思。

会建议您先把程式流程用文字叙述先建立好,之后再程式码,会比较清楚流程。

例如:
1.建立存放-9~101,间距为5的23三个数值的阵列。
2.产生0~23之间之整数乱数
3.确认产生之乱数是否有重复产生
4.....
5.....

以此列推,说不定会对您有帮助^^m

此文章被评分,最近评分记录
财富:50 (by 三仙) | 理由: ^^ 因为您的参与,让程式设计更容易!!


恩...
献花 x2 回到顶端 [6 楼] From:台湾中华电信 | Posted:2011-03-29 17:48 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-03-29 17:48 发表的 : 到引言文
乱数都一致的问题是您的Random seed给的都一样,所以每次都会产生相同的数值。

乱数在下不熟练,只知道最简单的方法是把时间拿来当seed来产生新乱数。

至于时间要取到多少,会建议到10ms以下,不过也是要看您的需求而定。

至于compile错误的问题,可能是因为在c/c++里面,阵列的使用是用 [] 来指定阵列位置。所以用 () 就会出错。

您可以修改看看,说不定会有效。

关于Index(-9) = 0指的是Index函式传入-9,他会回传阵列位置0。

所以是属于数学表示的方式,造成您的误会,很不好意思。

会建议您先把程式流程用文字叙述先建立好,之后再程式码,会比较清楚流程。

例如:
1.建立存放-9~101,间距为5的23三个数值的阵列。
2.产生0~23之间之整数乱数
3.确认产生之乱数是否有重复产生
4.....
5.....

以此列推,说不定会对您有帮助^^m
因为习题的指定
所以才会弄得小弟焦头烂额
以下小弟再多参考一些书籍或网路问题查询
看能不能完全解决
谢谢


献花 x0 回到顶端 [7 楼] From:台湾行政院研考会 | Posted:2011-03-30 15:40 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

终于解决了这一题
该题程式码如下
可以产生十个指定乱数

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main(void)
{
  int i,j;
  srand((unsigned)time(NULL));
  int num[23]={-9,-4,1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101};
  for(i=1;i<=10;i++)
  {
  for(j=1;j<=22;j++)
    {
    num[j]=(-9,-4,1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101);
    j=(rand()%23)+1;
    printf("%d. %d\n",i,num[j]);
    break;
    }
  }
  system("pause");
  return 0;
}


献花 x0 回到顶端 [8 楼] From:台湾中华电信股份有限公司 | Posted:2011-04-04 15:32 |
leacks 手机
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x8 鲜花 x324
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

23个乱数?
既然是-9~101
那就把取到的乱数-9不就好了?

rand()%111-9

也不用建啥阵列了
不然就是要用程式建阵列,否则为了这简单的小程式花时间在那边建110个阵列,有点浪费时间.

此文章被评分,最近评分记录
财富:10 (by 三仙) | 理由: ^^ 因为您的参与,让程式设计更容易!!


献花 x2 回到顶端 [9 楼] From:台湾基础开发科技股份有限公司 | Posted:2011-04-10 08:45 |

<<   1   2  下页 >>(共 2 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.029674 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言