home > さまざまな言語で数値計算 > 数列の積・階乗・順列・組合せ >

さまざまな言語で数値計算

Only Do What Only You Can Do

重複順列 (異なる 個のものから重複を許して 個取ってできる順列の総数)は, 次の式で表せます.

単に累乗です.

この節では, 累乗を使って, 異なる $ 10 $ 個のものから重複を許して $ 5 $ 個取ってできる順列の総数を求めます.

重複順列

VBScript

'重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
Dim n: n = 10
Dim r: r = 5
WScript.Echo(n ^ r)
Z:\>cscript //nologo 0407.vbs
100000

JScript

// 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
var n = 10
var r = 5
WScript.Echo(Math.pow(n, r))
Z:\>cscript //nologo 0407.js
100000

PowerShell

# 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
$n = 10
$r = 5
Write-Host ([math]::pow($n, $r))
Z:\>powershell -file 0407.ps1
100000

Perl

# 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
$n = 10;
$r = 5;
print $n ** $r, "\n";
Z:\>perl 0407.pl
100000

PHP

<?php
# 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
$n = 10;
$r = 5;
echo pow($n, $r), "\n";
?>
Z:\>php 0407.php
100000

Python

# 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
n = 10
r = 5
print n ** r
Z:\>python 0407.py
100000

Ruby

# 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
n = 10
r = 5
puts n ** r
Z:\>ruby 0407.rb
100000

Groovy

Pascal

Program Pas0407(arg);
uses
    SysUtils, Math;
var
    n: Integer;
    r: Integer;
begin
    // 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
    n := 10;
    r := 5;
    writeln(format('%g', [power(n, r)]));
end.
Z:\>fpc Pas0407.pp -v0
Free Pascal Compiler version 2.6.2 [2013/02/12] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others

Z:\>Pas0407
100000

Ada

VB.NET

Module VB0407
    Sub Main()
        '重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
        Dim n As Integer = 10
        Dim r As Integer = 5
        Console.WriteLine(n ^ r)
    End Sub
End Module
Z:\>vbc -nologo VB0407.vb

Z:\>VB0407
100000

C#

using System;

public class CS0407
{
    public static void Main()
    {
        // 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
        int n = 10;
        int r = 5;
        Console.WriteLine(Math.Pow(n, r));
    }
}
Z:\>csc -nologo CS0407.cs

Z:\>CS0407
100000

Java

public class Java0407 {
     public static void main(String []args) {
        // 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
        int n = 10;
        int r = 5;
        System.out.println(Math.pow(n, r));
    }
}
Z:\>javac Java0407.java

Z:\>java Java0407
100000.0

C++

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    // 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
    int n = 10;
    int r = 5;
    cout << pow(n, r) << endl; 
    return 0;
}
Z:\>bcc32 CP0407.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
CP0407.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

Z:\>CP0407
100000

Objective-C

#import <Foundation/Foundation.h>

int main()
{
    // 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
    int n = 10;
    int r = 5;
    printf("%d\n", (int)pow(n, r) );
    return 0;
}
Compiling the source code....
$gcc `gnustep-config --objc-flags` -L/usr/GNUstep/System/Library/Libraries -lgnustep-base main.m -o demo -lm -pthread -lgmpxx -lreadline 2>&1

Executing the program....
$demo
100000

D

Go

Scala

対話型実行環境を起動

Z:\>scala
Welcome to Scala version 2.10.2 (Java HotSpot(TM) Client VM, Java 1.7.0_21).
Type in expressions to have them evaluated.
Type :help for more information.

// 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
val n = 10
val r = 5
Math.pow(n, r)
res0: Double = 100000.0

終了

scala> :quit

F#

対話型実行環境を起動

Z:\>fsi
Microsoft (R) F# 2.0 Interactive build 4.0.40219.1
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

// 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
let n = 10
let r = 5
System.Math.Pow(float n, float r)
val it : float = 100000.0

終了

> #quit;;

Clojure

対話型実行環境を起動

Z:\>java -cp C:\ProgramFiles\clojure-1.5.1\clojure-1.5.1.jar clojure.main
Clojure 1.5.1
; 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
(def n 10)
(def r 5)
(Math/pow n r)
100000.0

終了

user=> (. System exit 0)

Haskell

対話型実行環境を起動

Z:\>ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
-- 重複順列 (異なる 10 個のものから重複を許して 5 個取ってできる順列の総数)
let n = 10
let r = 5
n ^ r
100000

終了

Prelude> :quit
Leaving GHCi.
inserted by FC2 system