質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Visual Basic 6.0

Microsoft Visual Basic 6.0(VB6)とはCOMプログラミングのためにMicrosoftが提供したプログラミング言語とintegrated develpment enviornment(IDE)のことです。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

6回答

1283閲覧

配列から自動生成されるアルゴリズム

teefpc

総合スコア111

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Visual Basic 6.0

Microsoft Visual Basic 6.0(VB6)とはCOMプログラミングのためにMicrosoftが提供したプログラミング言語とintegrated develpment enviornment(IDE)のことです。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/07/15 04:37

編集2018/07/15 04:58

配列[n, m, ..., z]が与えられたとき、
0から (nm...*z)-1個の連続した値を返すアルゴリズムはどんなものがありますか?

配列[2,3]の場合
0,1,2,3,4,5

配列[2,2,3]の場合
0,1,2,3,4,5,6,7,8,9,10,11

配列[1,1,6,2]の場合
0,1,2,3,4,5,6,7,8,9,10,11

配列[2,3,4]の場合
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

です。よろしくお願いいたします。

自分で考えられた範囲は、式の最後の項はzの加算であるということだけです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

C++

1#include <iostream> 2#include <vector> 3#include <numeric> 4 5using namespace std; 6 7int main() { 8 vector<int> input = { 2,3,4 }; 9 // inputの各要素を全部掛け、その数分の要素を作って 10 vector<int> output(accumulate(input.begin(), input.end(), 1, [](int x, int y) { return x * y;})); 11 /// 0, 1,2 ... で埋める 12 iota(output.begin(), output.end(), 0); 13 // かくにん 14 for ( int item : output ) cout << item << ' '; 15} 16

投稿2018/07/15 13:17

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Python3.6だとこんな感じでしょうか。

Python

1from functools import reduce 2import operator as op 3 4def func(nums): 5 return list(range( 6 reduce(op.mul, nums) 7 )) 8 9def main(): 10 src = 与えられたリスト 11 print(src, func(src))

実行例 Wandbox

plain

1[2, 3] [0, 1, 2, 3, 4, 5] 2[2, 2, 3] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 3[1, 1, 6, 2] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 4[2, 3, 4] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

実用するならば返り値はジェネレータのままで良いです。

投稿2018/07/15 07:19

LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんな漢字で

bash

1$ echo '[2,3,4]'|tr '[,' ' *'|sed 's/]/-1/'|bc|xargs seq 0|xargs|tr ' ' ',' 20,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

投稿2018/07/15 05:07

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

コードで書いたほうが早いので、とりあえずC++で。

C++

1// 可変長にしたいのでvectorを使う 2std::vector<int> intVector; 3 4/* ここでintVectorに値を追加 */ 5 6// intVectorの全要素の積を求める 7int maxNum = 1; 8for( std::vector<int>::iterator itr = intVector.begin(); itr != intVector.end(); itr++ ) { 9 10 maxNuM *= *itr; 11 12}// for(..itr..) 13 14// maxNum個の整数を出力する 15for( int i = 0; i < maxNum; i++ ) printf( "%d,", i ); 16printf( "\n" );

要は、「配列の全要素の積」を求めてしまえば、あとは単純なループで済みます。
なお、手抜きしたので最後の要素の後に','が出力されますが、ご了承下さい。
それと、上記コードでは省略しましたが、配列の要素にマイナスの値が入っていないかのチェックも必要です。

投稿2018/07/15 05:04

rtr1950x

総合スコア298

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

JavaScript と Ruby で書いてみました。

JavaScript

javascript

1const getSeries = (nums) => { 2 const size = nums.reduce((p, n) => p * n); 3 return [...Array(size)].map((e,i) => i); 4}; 5 6console.log(getSeries([2,3])); // => [0, 1, 2, 3, 4, 5] 7 8console.log(getSeries([1,1,6,2])); // => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 9 10console.log(getSeries([2,3,4])); // => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] 11 12

上記と同じものを、以下に上げておきました。

https://jsfiddle.net/6jv9nqge/15/

Ruby

以下でよいかと思います。

ruby

1(0...[2,3].inject(&:*)).to_a # => [0, 1, 2, 3, 4, 5] 2 3(0...[1,1,6,2].inject(&:*)).to_a # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 4 5(0...[2,3,4].inject(&:*)).to_a # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

投稿2018/07/15 05:04

編集2018/07/15 05:17
jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

配列[n, m, ..., z]が与えられたとき、
0から (nm...*z)個の連続した値を返すアルゴリズムはどんなものがありますか?

  • for文 + []
  • Array() + Array.prototype.keys()+ スプレッド要素

Re: teefpc さん

投稿2018/07/15 05:01

編集2018/07/15 05:09
think49

総合スコア18156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問