排序组合方法,选出3个数,组成不同的三位数,要求每个三位数不相等

import random
import string
#方法1
def strnum(a,k):
    num1,num2=1,1
    b=[]
    for i in range(1,len(a)+1):
        num1=num1*i
    for i in range(1,len(a)-k+1):
        num2=num2*i
    #print num1,num2
    while True:
        c=string.join(random.sample(a,k)).replace(" ","")
        if int(c) not in b:
            b.append(int(c))
        if len(b)>=(num1/num2):
            break
    print b
    print len(b)

x=['1','2','3','4']
strnum(x,3)

import string
import random
#方法2
b=[]
while True:
    a=['1','2','3','4']
    s=string.join(random.sample(a,3)).replace(" ","")
    if s not in b:
        b.append(s)
    if len(b)>=24:
        break
print b

#方法3
c=[]
for line0 in x:
    for line1 in x:
        for line2 in x:
            if line2!=line0 and line2!=line1 and line0!=line1:
                c.append(int(line0+line1+line2))
print c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴为您服务,答复您的问题:在C中,可以使用以下代码随机选出三位数并选取中间值:int array[3]; int middle; srand (time(NULL)); for (int i = 0; i < 3; i++) array[i] = rand() % 1000; if (array[1] > array[0] && array[1] < array[2]) middle = array[1]; else if (array[2] > array[0] && array[2] < array[1]) middle = array[2]; else middle = array[0]; ### 回答2: 要在一个数组中随机选取三位数并选取其中间值,可以按照以下步骤进行: 1. 声明一个整型数组,并给数组赋值,保证数组中至少有三个元素。 2. 生成一个随机数,表示在数组中的起始位置。在范围内使用 rand() 函数来获取随机数。 3. 按照随机起始位置,从数组中选取连续的三个元素。 4. 将这三个元素排序,找到其中间值。 5. 打印或返回中间值。 下面是一个示例代码: ```cpp #include <iostream> #include <cstdlib> #include <ctime> int main() { // 声明并初始化数组 int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 设置随机数种子 srand(time(0)); // 生成随机起始位置 int start = rand() % (10 - 3 + 1); // 数组长度减去3加1 // 输出随机起始位置 std::cout << "起始位置:" << start << std::endl; // 选取三个元素并排序 int subArray[3]; for (int i = 0; i < 3; i++) { subArray[i] = array[start + i]; } // 对选取的三个元素进行排序 for (int i = 0; i < 2; i++) { for (int j = 0; j < 2 - i; j++) { if (subArray[j] > subArray[j + 1]) { int temp = subArray[j]; subArray[j] = subArray[j + 1]; subArray[j + 1] = temp; } } } // 输出中间值 int middleValue = subArray[1]; std::cout << "中间值:" << middleValue << std::endl; return 0; } ``` 这个示例中,首先声明了一个大小为10的整型数组,并初始化为1至10的数字。然后使用 srand() 函数设置随机数种子,确保每次运行时得到不同的随机数。接着,使用 rand() 函数生成一个0至7的随机数作为起始位置。然后,从起始位置开始选取连续的三个元素,并使用冒泡排序将这三个元素从小到大排序。最后,输出中间值。 ### 回答3: 要在一个数组中随机选出三位数并选取中间值的代码,可以按照以下步骤进行: 1. 首先,定义一个数组,其中包含多个三位数。 - 可以使用数组字面量的方式初始化数组,例如: int[] numbers = {111, 222, 333, 444, 555}; 2. 然后,使用随机数生成器来随机选择一个索引值。 - 可以使用 Random 类来生成随机数,例如: Random rand = new Random(); - 使用 rand.nextInt(numbers.length) 方法来生成一个介于 0 与数组长度之间(不包括数组长度)的随机索引值。 3. 接下来,获取选中的三位数。 - 使用生成的索引值作为数组的索引,例如: int selectedNumber = numbers[randomIndex]; 4. 最后,找到选中的三位数的中间值。 - 将选中的三位数转换为字符串,例如: String numberString = String.valueOf(selectedNumber); - 使用 numberString.charAt(1) 来获取中间的数字字符。 - 将获取到的中间数字字符转换为整数,例如: int middleDigit = Character.getNumericValue(numberString.charAt(1)); 以下是完整的示例代码: ```java import java.util.Random; public class Main { public static void main(String[] args) { int[] numbers = {111, 222, 333, 444, 555}; Random rand = new Random(); int randomIndex = rand.nextInt(numbers.length); int selectedNumber = numbers[randomIndex]; String numberString = String.valueOf(selectedNumber); int middleDigit = Character.getNumericValue(numberString.charAt(1)); System.out.println("选中的三位数为:" + selectedNumber); System.out.println("中间数字为:" + middleDigit); } } ``` 此代码可以在提供的数组中随机选择一个三位数,并打印出选中的三位数以及中间数字

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值