さまざまな言語で数値計算
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.